How to update edu

edu is a living product which is continuously being developed and refined. Most changes to the EDU framework will consist of package releases to one or more of the component parts of the project.

Each of these components has a specific version or version range pinned in the Project Template repository (for example the packages.yml file for dbt packages, or the Airflow environment init script for Python packages). They all follow SemVer, which means you can be relatively confident that patch releases will not break your project, though you should always test new versions in a development environment first.

In the case of breaking changes, the CHANGELOG of the affected repository will include a migration guide. We strive to maintain backwards compatibility as much as possible, though sometimes breaking changes are necessary.

For keeping up to date with changes to the project template repository itself (after your project forked from it), we do not have a rigorous strategy for this yet. Generally speaking the changes to the template repo are small (e.g. adding new configuration options, changing defaults, etc), and you could just check the recent commit log periodically, but below are some ideas for incorporating changes to the template repo itself in a more direct way: )

  1. use a diffing tool like the Diff Folders plugin for VSCode to compare your implementation repo fork to the target version of the official edu template repo
  2. rebase changes manually as needed — unfortunately this must be done manually since both the template repo has changed (with new features and udpates) and your implementation repo has changed (with customizations and configuration choices) and there's no way to programmatically determine which is which
  3. we recommend you test the rebasing in a new branch deployed to a development environment of your infrastructure before merging the updated branch into main