Update Set vs. GitHub Integration

Luca Michalczyk
Tera Contributor

Happy new year SNow Family,

so basically I have an application all planned out and now I want to start the whole dev process. I want to develop it on my PDI and since there will be some time between me finishing it and the app getting reviewed, I started to worry about this whole pdi reclaiming thingy. I simply fear that at the time when the app is about to be reviewed, I simply forgot to extend my PDI and that it got reclaimed. To prepare, I was thinking about creating an update set or a git hub repo to solve this problem and of course to transfer it to different PDIs if it gets "accepted". 

 

Just in case if the question to wether go with an update set or a git hub repo is depending of the content of said application, let me first give you a quick summary of the things i want to build:

I will create a new scope for new tables for my usecase, create a new service catalog with some new flows, new KB articles and do some changes to the now-mobile app. If there is time, I will also configure some stockrooms, surverys and maybe even walk-up experiences. So it feels like some of the changes will be done in my custom scope while some of the configurations are done in some of the ootb-scopes. 

i) Would you use an update set or a git hub repo to make it "accessible" from different dev instances?

ii) If you would go with an update set, can you simply put every change into one set or would you split it up? Scope-wise or somehow splitted up for Service Catalog, Now-Mobile changes, flows, etc.

iii) What are the general differences between update sets and pushing everything to git hub except the version control?

iv) Something different i should keep in mind? 

Thanks in advance, hope all of you are doing well

Luca

9 REPLIES 9

Hi @Luca Michalczyk 

I have to disagree with some statements given by @Hitoshi Ozawa .

ServiceNow invests a lot of efforts to make Update Sets obsolete. For complete applications - and I understood you want to build such an application - ServiceNow officially recommends a Git repository for the development on DEV and an application repository for the deployments on TEST and PROD.

Using Git is not "a overkill". Unnecessary, on the other hand, is all the trouble you have with update sets. 

Kind regards
Maik

Maik mentioned another feature - application repository.

I do have to confess that I haven't used it because I'm customizing the OOTB ServiceNow by adding customized tables, forms, and lists and haven't built an application yet.

I think the differences between git, update set, application repository is the granularity. It's going to depend on whether it's updating a script, customizing a table/form/script, or an application.

FYR: Application repository concept.

https://docs.servicenow.com/bundle/rome-application-development/page/build/applications/concept/app-...

SaschaWildgrube
ServiceNow Employee
ServiceNow Employee

IMHO update sets are dinosaurs - on a clear path to extinction.

How to build a robust development and deployment process based on source control?

Check this out:

https://www.wildgrube.com/download/A%20mature%20Development%20and%20Deployment%20Process.pdf

Sodda13
Tera Contributor

i) Update Set vs. GitHub Repository: Considering the complexity of your project involving new tables, service catalogs, KB articles, and various configurations, I recommend using a GitHub repository. Git provides a robust version control system, allowing you to manage changes efficiently and collaborate seamlessly. By using GitHub, you can maintain different branches for different features, ensuring a well-organized development process.

ii) Organization of Update Sets: If you opt for an update set, it's advisable to split changes logically. Create separate update sets for different scopes such as Service Catalog, Now-Mobile changes, flows, etc. This approach enhances clarity, making it easier to manage and track changes related to specific components of your application.

iii) General Differences between Update Sets and GitHub:

  • Update Sets: These are specific to the ServiceNow platform and are used for capturing and moving configuration changes between instances. Update sets are efficient for ServiceNow-specific configurations.
  • GitHub Repository: GitHub is a version control system widely used for collaborative software development. It provides a centralized location for your code, enabling versioning, collaboration, and easier management of complex projects. Unlike update sets, GitHub offers a broader range of version control features and is not limited to ServiceNow configurations.

iv) Additional Considerations:

  • Regularly commit your changes to the GitHub repository to maintain a comprehensive version history.
  • Clearly document your commits and changes made in each branch, making it easier for collaborators to understand the progress.
  • Consider setting up a Continuous Integration (CI) pipeline to automate the testing process, ensuring code quality and stability.

I hope this guidance helps you in making an informed decision for your development process. If you have further questions or need more specific advice, please feel free to ask. Best of luck with your project, and I hope the development process goes smoothly for you. Explore the difference between GitHub vs Git.

Regarding i) The use of different branches for different features is the common way to use source control - but it does not work with ServiceNow - or to be precise: it only work under very specific circumstances.

Please check out chapter "Branching Strategy" on how large developer teams use GitLab (it works for GitHub, too) very successfully:
https://www.wildgrube.com/download/A%20mature%20Development%20and%20Deployment%20Process.pdf