Script to Package Addons #55

Closed
Nick Alberelli wants to merge 0 commits from feature/addon-release-system into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
Member

Goal

Create a tool to automate the packaging and version bumping of addons.

  1. The tool will find each addon folder in the repostory
  2. Filter for new commits to determine if there is a new version (otherwise addon is skipped)
  3. Bump the version in the init file and commit that change
  4. Generate a changelog from the new commits
  5. ZIP the folder to create a release
  6. Upload release to studio.blender.org

TODO

  • Find last version bump commit and all new commits in folder since bump
  • Generate Changelog from all new commits in folder
  • Borrow some code from https://pypi.org/project/git-changelog/ to generate a nicer changelog
  • Bump version in init files of all addons
  • Stage and commit ONLY init file changes
  • Allow user to specify only some addons to update
  • Add options for minor and major version bumps
  • Save Checksum next to zips
  • Verify Checksum Logic is correct
  • Put addons zips in DIST directory
  • Append changelog to existing file
  • Include Changelogs to Addon Docs
  • Create download table in addon docs
  • Double check docstrings
  • Fix README
  • MAYBE include author/description in addon table (ask @fsiddi )
  • Add option to re-package addon without making a new version/changelog
  • Make a top level variable for base dir for the root of repo in the code
  • Rename __main__.py to pipeline_release.py and remove setup.py and extra directory
  • Make all descriptions in table one line
  • Make an issue to automate the generation of table for a future release
  • Link addons and checksums into table
# Goal Create a tool to automate the packaging and version bumping of addons. 1. The tool will find each addon folder in the repostory 2. Filter for new commits to determine if there is a new version (otherwise addon is skipped) 3. Bump the version in the init file and commit that change 4. Generate a changelog from the new commits 5. ZIP the folder to create a release 6. Upload release to studio.blender.org ## TODO - [x] Find last version bump commit and all new commits in folder since bump - [x] Generate Changelog from all new commits in folder - [x] Borrow some code from https://pypi.org/project/git-changelog/ to generate a nicer changelog - [x] Bump version in init files of all addons - [x] Stage and commit ONLY init file changes - [x] Allow user to specify only some addons to update - [x] Add options for minor and major version bumps - [x] Save Checksum next to zips - [x] Verify Checksum Logic is correct - [x] Put addons zips in DIST directory - [x] Append changelog to existing file - [x] Include Changelogs to Addon Docs - [x] Create download table in addon docs - [x] Double check docstrings - [x] Fix README - ~~MAYBE include author/description in addon table (ask @fsiddi )~~ - ~~Add option to re-package addon without making a new version/changelog~~ - [x] Make a top level variable for base dir for the root of repo in the code - [x] Rename `__main__.py` to `pipeline_release.py` and remove `setup.py` and extra directory - [x] Make all descriptions in table one line - [x] Make an issue to automate the generation of table for a future release - [x] Link addons and checksums into table
Nick Alberelli added 1 commit 2023-05-23 19:55:56 +02:00
Nick Alberelli added 1 commit 2023-05-23 20:47:23 +02:00
Nick Alberelli added 1 commit 2023-05-23 21:43:09 +02:00
Nick Alberelli added 1 commit 2023-05-23 21:51:35 +02:00
Nick Alberelli added 1 commit 2023-05-23 21:59:35 +02:00
Nick Alberelli added 1 commit 2023-05-23 22:29:23 +02:00
Nick Alberelli added 1 commit 2023-05-23 22:43:40 +02:00
Nick Alberelli added 1 commit 2023-05-24 16:51:47 +02:00
Nick Alberelli added 2 commits 2023-05-24 18:04:19 +02:00
Nick Alberelli force-pushed feature/addon-release-system from 4d4e79c0c7 to 13319e759d 2023-05-24 18:31:03 +02:00 Compare
Nick Alberelli added 1 commit 2023-05-24 18:43:23 +02:00
Author
Member

Upload releases to a server via R-Sync
Append latest Changelog to the file

Upload releases to a server via R-Sync Append latest Changelog to the file
Nick Alberelli added 2 commits 2023-05-31 03:47:23 +02:00
- Retrieve commit message oneliner
 - Save each message in a new line
- Add function to safely get folders
 - Make a new folder per addon name
Nick Alberelli added 1 commit 2023-05-31 05:06:58 +02:00
- Borrow code from https://github.com/pawamoy/git-changelog/blob/master/src/git_changelog/commit.py

 - Parse commit for type
 - Create entries in changelog per type
 - Add category for uncategorized changes
Nick Alberelli added 1 commit 2023-05-31 13:45:37 +02:00
- Generate checksum next to "zipped" archive
 - Save changelog early so it goes into archive
 - add write_file() function
Nick Alberelli added 1 commit 2023-05-31 13:50:23 +02:00
Nick Alberelli added 2 commits 2023-05-31 14:54:09 +02:00
Nick Alberelli added 1 commit 2023-05-31 16:50:40 +02:00
Nick Alberelli added 1 commit 2023-05-31 17:09:05 +02:00
- Remove no-op code
 - include "breaking" in parse_commit()
Nick Alberelli force-pushed feature/addon-release-system from 1687a3b800 to e805542c42 2023-05-31 17:13:42 +02:00 Compare
Nick Alberelli added 2 commits 2023-05-31 18:18:10 +02:00
Nick Alberelli added 2 commits 2023-05-31 19:03:43 +02:00
Nick Alberelli added 1 commit 2023-05-31 20:02:26 +02:00
Nick Alberelli added 1 commit 2023-05-31 20:07:07 +02:00
Nick Alberelli added 1 commit 2023-05-31 20:35:21 +02:00
Nick Alberelli added 1 commit 2023-05-31 20:39:57 +02:00
Nick Alberelli added 2 commits 2023-05-31 21:13:43 +02:00
- include feature list
 - include changelog conventions
Nick Alberelli added 1 commit 2023-06-01 05:20:19 +02:00
Nick Alberelli added 1 commit 2023-06-01 19:18:49 +02:00
Francesco Siddi added 1 commit 2023-06-01 19:45:54 +02:00
Nick Alberelli added 1 commit 2023-06-01 20:27:36 +02:00
- Add oneline descriptions to download table
- Remove old descriptions
- Update description of page to include link to issues board
Nick Alberelli added 1 commit 2023-06-01 22:10:30 +02:00
Nick Alberelli added 1 commit 2023-06-01 22:17:09 +02:00
- Match version numbers to output of script using --force arg
Nick Alberelli added 2 commits 2023-06-01 22:22:20 +02:00
Nick Alberelli added 1 commit 2023-06-01 22:26:56 +02:00
- Rename `__main__.py` to `pipeline_release.py`
 - remove `setup.py`
 -remove extra directory
 - adjust REPO_ROOT_DIR variable to reflect directory change
Author
Member

Future Improvements moved to studio/blender-studio-pipeline#67

Future Improvements moved to https://projects.blender.org/studio/blender-studio-pipeline/issues/67
Nick Alberelli changed title from WIP: Script to Package Addons to Script to Package Addons 2023-06-01 22:29:03 +02:00
Author
Member

@fsiddi this is ready for testing/publishing of the packages!

@fsiddi this is ready for testing/publishing of the packages!
Nick Alberelli added 1 commit 2023-06-02 18:40:04 +02:00
Author
Member

Closed by b43203aea6

Closed by https://projects.blender.org/studio/blender-studio-pipeline/commit/b43203aea692a4edc64e5aa0731dcc181685e153
Nick Alberelli closed this pull request 2023-06-02 19:51:03 +02:00

Pull request closed

Sign in to join this conversation.
No reviewers
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: studio/blender-studio-tools#55
No description provided.