|
| 1 | +# Updating an existing Package |
| 2 | + |
| 3 | +In case you are looking for packages which need to be updated have a look at our |
| 4 | +[Outdated Packages](https://packages.msys2.org/outofdate) page. To get a list of |
| 5 | +packages which are outdated and have potential security issues have a look at |
| 6 | +the Repology pages for |
| 7 | +[msys2_mingw](https://repology.org/projects/?inrepo=msys2_mingw&outdated=on&vulnerable=on) |
| 8 | +and |
| 9 | +[msys2_msys2](https://repology.org/projects/?inrepo=msys2_msys2&outdated=on&vulnerable=on). |
| 10 | + |
| 11 | +## Updating a Package |
| 12 | + |
| 13 | +* Fork the [packages repository](https://github.com/msys2/MINGW-packages) if you |
| 14 | + haven't already and create a new branch for your update |
| 15 | +* Look at the upstream changelog for potential update related information like |
| 16 | + new dependencies, changes to build options, changes to the build system, etc. |
| 17 | +* Update pkgver in the PKGBUILD and reset pkgrel back to 1 |
| 18 | +* Run `updpkgsums` in the PKGBUILD directory for updating the checksums of the |
| 19 | + source files |
| 20 | +* Run `makepkg-mingw --cleanbuild --syncdeps --force --install --noconfirm` to |
| 21 | + build and install the new version |
| 22 | +* Test the new version, if possible |
| 23 | +* Commit and push your changes and open a pull request. Try to include some |
| 24 | + brief information of your changes like why you added/removed patches, why you |
| 25 | + added/removed new dependencies, why you changed the build options etc. |
| 26 | + |
| 27 | +If your lucky then this is all that's needed, but in some cases the new version |
| 28 | +might need some additional work: |
| 29 | + |
| 30 | +* In case there are patches that no longer apply they have to be refreshed |
| 31 | +* In case some patches are no longer needed in the new version they have to be |
| 32 | + removed |
| 33 | +* In case the release is signed by a new signing key the key has to be added to |
| 34 | + the `validpgpkeys` array |
| 35 | +* In case of major changes, like a build system switch, consider comparing the |
| 36 | + old build result and the new build result for differences to avoid any |
| 37 | + regressions. [meld](https://packages.msys2.org/base/mingw-w64-meld3) can be a |
| 38 | + helpful tool for this. |
| 39 | +* In case there are incompatible changes that might break reverse-dependencies |
| 40 | + (DLL name changes, ABI breaks, etc.) bump the pkgrel of all reverse |
| 41 | + dependencies and include them in your PR. |
| 42 | + |
| 43 | +After you have submitted your pull request, our CI system will try to build the |
| 44 | +package for all environments and do so some simple checks on it. After the |
| 45 | +update is reviewed and merged you can follow the build process on our [Pending |
| 46 | +Updates](https://packages.msys2.org/queue) status page. |
0 commit comments