areca-backup

Areca Backup - Release version checklist

Check out previous commits to get an overview of what a new release entails.

The following steps describe how to release a new version (e.g. 8.0.0), for instance, from the develop branch.

Sematic versioning

What <major>.<minor>.<patch> means in a specific Areca version (8.0.0):

Steps to build a new release bundle

  1. Add/Update credit to the author and copyright in each modified file if the file already had that info and was originally created by Olivier PETRUCCI.

  2. Update AUTHORS and COPYING files if any file was modified by a new developer.

  3. Add a new entry to history.md:

    history.md shows the change log (online). ```markdown

    Version 8.0.0 (released on 2024-09-21)

    • Fixed Areca launchers.
    • Support for Java 8 LTS.
    • Fixed broken links to online documentation.
    • Fixed Check for new version ... feature.
    • Fixed building pipeline.
    • Add dependency manager.
    • Add some documentation for users and developers. ``` Annotate any known or potential break change.
  4. Update VersionInfos.java:
    • Change the BUILD_ID

      BUILD_ID is shown in the Areca’s log to identify its build version.

      These commands can help to generate a new random value:

      • javac building/GenerateBuildId.java
      • java building.GenerateBuildId
        Next Areca's BUILD ID: 5682047565851761744L for src/com/application/areca/version/VersionInfos.java
        

        Replace (v7.5) BUILD_ID = 5872222636083894532L; with (v8.0.0) BUILD_ID = 5682047565851761744L; in VersionInfos.java.

    • Add a new entry to VERSIONS:

      VERSIONS shows the change log in the feature History in Areca Backup - About (Help menu > About ... or Plugins ...).

      release("8.0.0", 2024, 8, 21, "Fixed Areca launchers. Support for Java 8 LTS. Fixed broken links to online documentation. Fixed `Check for new version ...` feature. Fixed building pipeline. Add dependency manager. Add some documentation for users and developers.");
      

      month is a zero-based int:

      new GregorianCalendar(intYear, intZeroBasedMonth, intDay)
      

      or

      release("8.0.0", 2024, 8, 21, "Fixed Areca launchers. Support for Java 8 LTS. Fixed broken links to online documentation. Fixed `Check for new version ...` feature. Fixed building pipeline. Add dependency manager. Add some documentation for users and developers.");
      
  5. Update version.xml.

    version.xml allows Areca to discover the new released version with the feature Check for new version ... ```xml <?xml version=”1.0” encoding=”UTF-8”?>

    ```

    • id is the release version.
    • date is the release date (month is zero-based).
    • url is where the Areca’s user can download the new release version.
    • description is the list of changes that includes this new version.
  6. Update the value of VERSION_URL in ArecaURLs.java if the location where version.xml is hosted has changed its location (e.g. due to a repo fork).

  7. Update builds.csv to track BUILD_IDs (month is one-based integer).

  8. Commit changes to develop branch:
    git commit --message "Version 8.0.0"

  9. Build release bundles.

  10. Upload release bundles to the url pointed in version.xml.

  11. Release the source code changes
    • Switch to main branch:
      git checkout main
    • Update local main branch:
      git pull
    • Merge develop into the main branch with a merge squash:
      git merge --squash develop
    • Commit the merge squash:
      git commit --message "Version 8.0.0
            
      - Fixed Areca launchers.
      - Support for Java 8 LTS.
      - Fixed broken links to online documentation.
      - Fixed `Check for new version ...` feature.
      - Fixed building pipeline.
      - Add dependency manager.
      - Add some documentation for users and developers."
      
    • Annotated tag:
      git tag -a v8.0.0 --message "Version 8.0.0
            
      - Fixed Areca launchers.
      - Support for Java 8 LTS.
      - Fixed broken links to online documentation.
      - Fixed `Check for new version ...` feature.
      - Fixed building pipeline.
      - Add dependency manager.
      - Add some documentation for users and developers."
      
    • Upload local commits to the remote repo:
      git push --follow-tags