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
- To use it, run
go-task updatecheck
- Makes use of the
ent
tool. See https://github.com/serpent-os/ent - Only checks packages with
monitoring.yml
files ent
has been added to the packaging requirements in Prepare for Packaging
Mandatory rss field in monitoring.yml
- The
rss
field is now mandatory in monitoring.yml files. See the updated monitoring.yml page
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 andeopkg
(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 thepackages
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 thepackages
repository
May
New go-task functionality to clean local repository
- Removes all
.eopkg
files in thesolbuild
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 asbuilddeps
, 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 usegit commit --cleanup=scissors
.
Requiring homepage
in package.yml
- The
homepage
key inpackage.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
), butsolus-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 thanmake
.- Building a package can be done using
go-task
rather thanmake
. - Commands are the same:
make local
, for example, is replaced bygo-task local
. - You can see all available commands by either browsing to
Taskfile.yml
in thepackages
repository OR runninggo-task -l
somewhere in your updated clone of the packages git monorepo.
- Building a package can be done using
- 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 likeUpdate 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.