Version Control is a critical component of any software development team, particularly if you're collaborating with a large group of individuals. When done right, Version Control will help you track changes over time, like scheduling specific versions to accommodate the development of new features and bug fixes. You can even rollback to a specific version with ease as you continue testing
In this guide, we'll review the Version Control feature and explain how you can use semantic versioning to get more out of Integrate.io for your company. We'll also review the handy Import and Export features, which allow you to save a package JSON file in the event that you want to store your versions elsewhere or bring in a version from a third-party solution, such as Github.
Overview of Version Control
Version Control can help your company accomplish great things — from providing better visibility and enhanced collaboration to enabling greater traceability — so, if you're not already using it, there's no better time to start.
Fortunately, getting started is very easy and you'll find the options and controls to be simple and intuitive. Of course, if you ever have questions or issues with Version Control or any other Integrate.io feature, you can always reach out to the Support Team for help or review our robust Knowledge Base for solutions.
Integrate.io's Version Control comprises the following core features:
- Lock a package version on a version maintainer schedule, so your developers are always using the right version.
- Create a major number version from the package designer to mark major changes or other milestones.
- Preview older versions and rollback to previous packages from a given version range at any time with just a few clicks.
Here an Integrate.io package shows its version number and the version's description:
Package Export
Customers can now export their Integrate.io package's configuration in JSON, so it can be stored in their company source code control system. The ease of export will surprise you and make your in-house version control and backups far simpler to stay on top of.
Package Import
Customers can now import their JSON package configurations. This is ideal if you are currently using another Version Control software and you'd like to migrate over to Integrate.io's Version Control, or if you're using another Version Control software and you'd like to move seamlessly between package versions.
The Unified Stack for Modern Data Teams
Get a personalized platform demo & 30-minute Q&A session with a Solution Engineer
When Is Version Control Helpful?
Often in larger data engineering teams, it is very useful to version an Integrate.io package, keep track of a specific package version, schedule a certain package version, and rollback to a specific package version. Without version control, your team may have difficulties with accountability, among other problems, and these issues are only exacerbated in bigger teams.
In other words, the more people you have working on a given project, the more helpful version control will be. Version control is also extremely important for complex projects and those requiring multiple stages of testing and iteration before the final project is completed. Ultimately, version control has many advantages. Here are some instances where it comes in handy:
-
Track & Control Changes: In addition to helping you track changes made over time, Version Control also ensures every team member is working on the right version.
-
Streamline Collaboration: Version Control should always be used if you have multiple team members collaborating on the same code, files, and/or assets.
-
Gain Better Visibility: The right Version Control solution will improve visibility, enable remote collaboration, and streamline product delivery, helping aid faster turnaround times.
-
Single Source of Truth: The absolute most important aspect of using Version Control is that it gives your team a "single source of truth."
So, how do you use it? This guide will walk you through using Integrate.io's built-in version control and using the Import/Export option in the event that you use Git or another third-party service to handle your version control.
How Do I Use Package Version Control?
Before we get into the step-by-step, it's important to note that you will only have access to the last 100 versions of a given package. If you haven't already, you'll also want to discuss Version Control with your account manager here at Integrate.io and have them enable it on your account. Your account will need to have this feature enabled before you can proceed with any of the setup steps explained below.
How to Create a Major Version
You can save a package in one of two ways, using either the "Quick Save" option or the "Create Major Version" tool. Both of these options are located under the "Save" drop-down within the Package Designer.
Quick Save
The Quick Save option is your typical "save" button and it will produce a minor version that increases linearly (i.e., Version 2.1, 2.2, 2.3, etc.). If you're developing a package and running tests, this is very useful. However, after testing everything, you'll need to create a major version for the purposes of using version control.
Create Major Version
After testing everything, use the "Create Major Version" button to create a checkpoint. This will save your last working version. You'll need to insert a Version Description, which is much like a Git commit message, in order to create the major version. Each major version will increase incrementally by 1 and reset the minor version to 0 (i.e., Version 2.0, 3.0, 4.0, etc.). You can see the version in the left-hand corner.
- Open the Package Designer
- Click the drop-down arrow next to "Save" and select "Create Major Version"
- Insert a version description and press the "Create" button
- The new version number and description will show in your package list
When you're selecting a package version for the schedule form, you will also see the version number and description. Plus, it's visible when rolling back your package to a previous version of the package.
How to Preview / Rollback to a Previous Version
One of the best features of Version Control is that you can preview older versions and rollback to them at any point in time. Currently, Integrate.io will allow you to access up to 100 of your most recent versions.
Step 1: View or Rollback
You can view older packages and rollback to older packages from two locations within your dashboard:
-
From The Packages List: Navigate to the Packages list and view or rollback your package version from there by pressing on the version number under the package name.
-
From The Package Designer: You can also view or rollback from the Package Designer by pressing on the version number under the package name.
Step 2: Choose The Package
After pressing on the version number, you'll see a screen that says "Rollback to previous version." Beneath that, you have the option to review the package details again and open it.
By default, the package shown will be the most previous version increment from just before the current version. To change the package, click the drop-down version and you will be able to view the full version list of installed packages. Each package will show you the version number, description, and the author of the version.
Step 3: Preview The Package
Select the version you desire from the packages list. Once you do, you have the option to "Open" the package and preview it. You will then be redirected to the package designer where you can open any component and check the package's state at that time. However, all designer controls will be disabled, so you cannot change the package in preview mode. You can edit the current version of a package, though.
Step 3: Preview The Package
If you are ready to continue with the rollback, press the "Rollback version" button. When you rollback a package, it will produce a minor version (i.e., Version 3.4) with a pre-written description.
The Unified Stack for Modern Data Teams
Get a personalized platform demo & 30-minute Q&A session with a Solution Engineer
Best Practice: Lock a Package Version on a Schedule
No matter which package version you're currently running, you always have the option of locking your schedule to run a previous release version. This functionality allows your team to work on developing a production package without ending up with duplicate packages or worrying about currently scheduled jobs being impacted by certain dependencies or development changes.
To use the scheduling feature:
- Navigate to the Schedules page in your dashboard
- Press the "New Schedule" button
- View your Packages list and press "Add package"
- The form will allow you to select the package of choice
Once you select a package, you'll see a screen that confirms the package version. You have the option to tick or untick the box that says "Always run the latest patch version of the package." By default, this option is checked.
If you wish, you can enter a description that acts as a guide for selecting a version. Once you select the required version, configure the schedule variables, and then press "Save." You will see the version number applied right after the package.
How Do I Import or Export a Package's JSON Source Code?
Any package can be represented as a JSON file, which will hold all the components and settings along with package variables, version number, description, and other metadata. You can import or export a JSON file at any time, which is helpful if you wish to use a third-party version control system, such as Git. You can also use Integrate.io's API to handle your imports and exports.
Note: Since package variables are part of the package JSON, you may need to remove sensitive information and credentials.
Exporting a JSON File
Before exporting a package, you must save and validate it first. Start by opening the package and locating the Import/Export drop-down. Press the "Export" button. Your browser will then begin the download. The exported file will be formatted so you can easily track differences between other JSON files.
Importing a JSON File
In order to import a package, you must first open a package and locate the Import/Export drop-down. Press the "Import" button to continue and find the package.json file you want to bring in. You will be met with a form where you can paste the JSON into the input box. Press the "Import" button.
When you import a package, it will be immediately updated with the changes available right away. You will not need to format the JSON file, but it needs to be valid otherwise or the JSON importer will show you an error message.
Getting More Out of Integrate.io
The Unified Stack for Modern Data Teams
Get a personalized platform demo & 30-minute Q&A session with a Solution Engineer
Version control is just one of many features that makes Integrate.io highly versatile, streamlined, and user-friendly. If you're interested in getting more out of Integrate.io, reach out to your Account Manager to discuss adding Version Control and other features to your account. Also, be sure to review our Knowledge Base periodically as we regularly update it with helpful guides and tips so that you can get more done.
If you're not yet signed up for Integrate.io, Version Control is just the tip of the iceberg. Those interested in learning more about what Integrate.io does and how it works should schedule an intro call with our product team. Not only will we be able to answer all of your questions, but we can also help compare your potential solutions and point you in the direction of something that's perfectly suited for your team.