Updating forked projects

You can update forked projects with the latest changes from the project it was forked from to keep the requirements defined in the projects in sync. The ActiveState Platform keeps track of changes to the forked from project (the “parent” project) , and notifies you in the forked project’s (the “child” project) Overview page when the project has available updates. You choose whether and when to apply the updates to the child project.

For example, you can create a parent runtime that includes the permitted set of packages for your organization and have your user create forks from that project for their specific projects. Or, if you’re an individual developer, you can create a parent runtime with the basic package requirements you use regularly for your projects, and create a fork for each new coding project you start. In both instances, you can update package requirements in the parent project and:

  1. You receive a notification in the child project’s Overview page when the parent project’s set of requirements changes.
  2. You have the opportunity to view and update the child project requirements to match the parent project’s requirements.

Example

The following example shows a project that was created with Django 2.0.3 as a requirement. A project was forked from the parent project soon after. A security vulnerability exists in Django 2.0.3, so it was important to update both projects to a version of Django that includes a fix for the vulnerability. In this case, Django 2.2.11 is the required version.

Step 1: The parent project is created.

Step 2: The child project is forked from the parent project. It has the identical set of changes.

Step 3: The parent project is updated to address the Django security vulnerability present in version 2.0.3.

Step 4: The changes are committed and a new entry is added to the parent project’s history. The parent project is now one commit ahead of the child project (The last 2 of 3 commits are shown).

Step 5: The child project now displays a message indicating that parent project has changes that haven’t been applied to the child project.

Step 6: The update dialog box provides details about the changes that will be applied, and enables updating the child project to match the parent project.

Step 7: The update completes successfully, and all of the parent project’s commits are applied to the child project and the language distribution installers are rebuilt.