maplibre / flutter-maplibre-gl

Customizable, performant and vendor-free vector and raster maps, flutter wrapper for maplibre-native and maplibre-gl-js (fork of flutter-mapbox-gl/maps)
https://pub.dev/packages/maplibre_gl
Other
215 stars 117 forks source link

Update release process #315

Closed m0nac0 closed 10 months ago

m0nac0 commented 11 months ago

I think we should make a new release, both because it has been quite some time since the last release and we have collected a lot of changes and new features since then. Also this allows us to fix #309 by fixing the packages released on pub.dev

So I thought a lot about the release process and came up with this proposal. It may seem a little complicated at first, but I think it's actually not much work. The most labor-intensive step is usually the changelog. So we might want to pay attention to updating that one with every relevant PR in the future.

I would keep the git releases for the time being, because a) we haven't officially announced/started releasing on pub.dev, so most users will use the plugin from git and b) because the pub.dev releases aren't fully functional, yet.

If we get the pub.dev releases right, we could make those the official recommended way of using the plugin and in the future discuss removing the "intermediary" git-release step.

For the last step: I would like to set up automated publishing to pub.dev (see https://dart.dev/tools/pub/automated-publishing#publishing-packages-using-github-actions). I think it both reduces the amount of work and increases the transparency and supply chain security for plugin users, compared to uploading the plugin from someones personal workstation, because it is clearer that the uploaded version is actually the unmodified one from GitHub (as long as one trusts the GitHub actions runners).

I also removed the previously contained step of commenting out dependency_overrides (which are very useful for us contributors), because according to the dart docs they are always ignored for packages from pub.dev (and generally for any package your application depends on). So it would be unnecessary work to remove them. (https://dart.dev/tools/pub/dependencies#dependency-overrides)

m0nac0 commented 11 months ago

cc @stefanschaller @JulianBissekkou

m0nac0 commented 11 months ago

btw: I also have a branch with release notes for the next release that may just need some slight updates for my recent housekeeping PRs