Skip to main content

Packaging Changes

This page is meant to serve as a changelog of sorts for the Solus packaging environment and the packaging instructions. Refer to specific help pages for more details.

  • This list is not exhaustive
  • This list is in reverse chronological order (newest first)

2024

December

New go-task functionality to check for package updates

Mandatory rss field in monitoring.yml

November

AppStream metainfo is required for all graphical applications in the Solus repository

  • All packages providing a graphical application must include AppStream metainfo. For details see AppStream metainfo page

Add Sync Notes checkbox to PR template

  • The PR template now contains a checkbox used to recommend its inclusion into the next Sync Notes post

Update solbuild images for eopkg/solbuild changes

  • The solbuild images have been refreshed due to extensive changes to both solbuild itself and eopkg (see here and here for details)
  • Packagers should re-initialize their solbuild images using go-task solbuild-reset

October

Add check for monitoring.yml

  • Commits are now checked for monitoring.yml files and their inclusion is strongly recommended. See monitoring.yml page

Add check for included static libraries

  • Commits are now checked for included static libraries
  • Packages with necessary static libraries have to be added to the allow-list in common/CI/config.yaml in the packages repository

Pre-filled commit titles for package inclusions and "No functional change"

  • Commit titles for package inclusion are now created with pre-filled version information (for example, "nano: Add at v1.2.3")
  • For "No functional change" commits with no changes to the pspec_x86_64.xml "[NFC]" is automatically added to the commit title

August

Pre-filled commit titles for package updates

  • Commit titles for package updates are now created with pre-filled version information (for example, "nano: Update to 1.2.3")

June

New go-task functionality to list packages without AppStream metadata

  • To use it, run go-task check-appstream-progress
  • Packages that should be ignored can be added to the list in common/Scripts/appstream_ignored_packages.txt in the packages repository

May

New go-task functionality to clean local repository

  • Removes all .eopkg files in the solbuild local repository and refreshes the index
  • To use it, run go-task clean-local

Remove 'Test Plan' and 'Checklist' from commit messages

  • These are no longer needed in commit messages.
  • They must still be included in the pull request description.

Add Rust macros to package.yml

  • We now have macros for building Rust packages. Example: %cargo_build. Rust packages should be switched to use the new macros as they are updated.
  • See the "Rust (cargo) actionable macros" section on the package.yml page.

Add guidance for SourceForge sources in package.yml

  • We now require SourceForge sources used in package.yml files to follow a specific format.
  • See the package.yml page.

February

Begin adding monitoring.yml to packages

  • A new per-package file was introduced: monitoring.yml. Used to monitor packages for releases and security advisories; see monitoring.yml.
  • This is not enforced by automatic checks yet, but we may ask that it be added.

2023

October

Adding checkdeps in package.yml

  • A new type of packaging dependency was added: checkdeps. They behave the same as builddeps, except they are not considered when determining build order for automatic builds. See the package.yml page.

Git hooks

  • Run go-task init to initialize Git hooks for the packages repository. See Prepare for packaging.
  • Use git commit for committing packaging changes and fill in the template shown. It is no longer required to manually copy-paste the template or use git commit --cleanup=scissors.

Requiring homepage in package.yml

  • The homepage key in package.yml has become mandatory. Use the address to the upstream source repository (eg: the GitHub page) if a package does not have a homepage.
  • This is enforced by checks on all pull requests.

Recommending amending commits in Pull Requests

  • Amending commits and force pushing the changes works better with our build tooling.
    • It was thought that abandoning this practice would be okay, but it turns out not to be the case.

September

Switch to asterisk bolding for PR template

  • The initial PR template for the packages repository used markdown header styling (## Heading text), but solus-sc does not render that styling, so the template was changed to asterisk bolding (**Heading text**)
  • https://github.com/getsolus/packages/pull/366

Switching From make to go-task

  • All packaging actions are now handled by go-task rather than make.
    • Building a package can be done using go-task rather than make.
    • Commands are the same: make local, for example, is replaced by go-task local.
    • You can see all available commands by either browsing to Taskfile.yml in the packages repository OR running go-task -l somewhere in your updated clone of the packages git monorepo.
  • Packagers should install go-task on their machines if they have not already.
  • The Makefile included with every package is no longer required. Please delete it from a package when updating, and do not include it when making the initial commit of a new package.

GitHub Monorepo Migration

  • Packages were moved from the initial multirepo setup to the packages monorepo: github.com/getsolus/packages Now packagers only need to clone/fork one repository for all packages.
  • The recommended migration strategy is to fork this repository and start with a clean clone. Any local changes to packages should be moved over manually.
  • Packagers should now title commits like packagename: Action; for example: nano: Update to 9.0. Generic titles like Update to 9.0 should not be used, except for rebuilds.
  • Packagers should use the pull request template for package updates, filling out the Summary and Test Plan sections as usual.

August

Initial GitHub Migration from old Phabricator Dev Tracker

  • This change was superseded by the later monorepo migration.
  • The new multirepo setup for packages was under github.com/solus-packages organization, packages were updated with PRs to individual repositories.
  • Issues were migrated to github.com/getsolus/packages from Phabricator. Closed issues were not migrated.
  • A read-only instance of the old Dev Tracker is available at phab.getsol.us. This will eventually be shut down.

April

The repository index was moved to cdn.getsol.us.

2022 and Earlier

Not included in this list.