From f58b22eb88aaff868f09ab14a77df239be74f510 Mon Sep 17 00:00:00 2001 From: GIancarlo Buenaflor Date: Thu, 16 Nov 2023 17:17:38 +0100 Subject: [PATCH 1/6] add docs --- docs/new-package-release-checklist.md | 45 +++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 docs/new-package-release-checklist.md diff --git a/docs/new-package-release-checklist.md b/docs/new-package-release-checklist.md new file mode 100644 index 0000000000..089466e3d2 --- /dev/null +++ b/docs/new-package-release-checklist.md @@ -0,0 +1,45 @@ +# New Package Release Checklist + +This page serves as a checklist of what to do when releasing a new package for the first time. + +## Release Preparation + +- [ ] Make sure the project is set up + - [ ] The package only exports the public API + - [ ] The package contains an example folder + - [ ] The package contains a README.md file + - [ ] The package contains a CHANGELOG.md file (symlink to the root changelog) + - [ ] The package contains a dartdoc_options.yaml file (symlink to the root file) + - [ ] The package contains a LICENSE (default is `MIT`) + - [ ] The package contains a pubspec.yaml file + - [ ] The package contains a analysis_options.yaml file + +- [ ] Make sure your new package has a `version.dart` in the `lib/src` folder. + - This is used to set the version and package in the `Hub`. See this [example](https://github.com/getsentry/sentry-dart/blob/8609bd8dd7ea572e5d241a59643c7570e5621bda/sqflite/lib/src/sentry_database.dart#L69). + - The version will be updated to the newest version after triggering the release process. + +- [ ] Create a new workflow called `package-name.yml` for building and testing the package. + +- [ ] Other than your `package-name.yml`, add the package to the `paths-ignore` section of all package workflow files. + +- [ ] In the root `.gitignore` file add the package coverage as ignored. + +- [ ] **The most important**: add your package to `scripts/bump-version.sh`. + +## Doing the Release + +Do these steps in the **correct order** + +- [ ] Add your package only as a `pub-dev` target in `.craft.yml`. (**not registry**) + - The release process might fail if you add it to the registry at this point. +- [ ] Trigger the release + - [ ] Check that the release bot successfully updated the versions in `version.dart` and `pubspec.yaml` in the release branch. + +## After the first release + +- [ ] Check if package is succesfully released on `pub.dev` +- [ ] Add the package to the Sentry Release Registry + - Instructions on how to do this can be found [here](https://github.com/getsentry/sentry-release-registry#adding-new-sdks) + - [Example PR](https://github.com/getsentry/sentry-release-registry/pull/136) +- [ ] Add an entry to `.craft.yml` for the package in the `registry` section. + - Now all future releases will be added to the registry automatically. \ No newline at end of file From 187f7fc851c66e404e6acbdaad2b21d3ddede678 Mon Sep 17 00:00:00 2001 From: GIancarlo Buenaflor Date: Thu, 16 Nov 2023 17:22:32 +0100 Subject: [PATCH 2/6] Add flutter example step --- docs/new-package-release-checklist.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/new-package-release-checklist.md b/docs/new-package-release-checklist.md index 089466e3d2..47a8862b9b 100644 --- a/docs/new-package-release-checklist.md +++ b/docs/new-package-release-checklist.md @@ -14,13 +14,16 @@ This page serves as a checklist of what to do when releasing a new package for t - [ ] The package contains a pubspec.yaml file - [ ] The package contains a analysis_options.yaml file +- [ ] Update the [Flutter example](https://github.com/getsentry/sentry-dart/tree/main/flutter/example) to use your new package if applicable + - [ ] Make sure your new package has a `version.dart` in the `lib/src` folder. - This is used to set the version and package in the `Hub`. See this [example](https://github.com/getsentry/sentry-dart/blob/8609bd8dd7ea572e5d241a59643c7570e5621bda/sqflite/lib/src/sentry_database.dart#L69). - The version will be updated to the newest version after triggering the release process. -- [ ] Create a new workflow called `package-name.yml` for building and testing the package. +- [ ] Create a new workflow called `your-package-name.yml` for building and testing the package. -- [ ] Other than your `package-name.yml`, add the package to the `paths-ignore` section of all package workflow files. +- [ ] Excluding `your-package-name.yml`, add the package to the `paths-ignore` section of all package workflow files. + - For examples see `sqflite.yml`, `dio.yml` etc... - [ ] In the root `.gitignore` file add the package coverage as ignored. From bc9d0c87f1b0d436808150b09e3754e7925f2861 Mon Sep 17 00:00:00 2001 From: GIancarlo Buenaflor Date: Thu, 16 Nov 2023 17:36:50 +0100 Subject: [PATCH 3/6] Add analyze info --- docs/new-package-release-checklist.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/new-package-release-checklist.md b/docs/new-package-release-checklist.md index 47a8862b9b..135ca401fd 100644 --- a/docs/new-package-release-checklist.md +++ b/docs/new-package-release-checklist.md @@ -27,6 +27,10 @@ This page serves as a checklist of what to do when releasing a new package for t - [ ] In the root `.gitignore` file add the package coverage as ignored. +The `analyze` workflow will fail in your PR and in the main branch because the package is not released yet and the `pubspec.yaml` is not 'valid' according to the analyzer. +This is expected - it will succeed after the release. +- [ ] Make sure the analyze workflow doesn't have other failures, only the one mentioned above. + - [ ] **The most important**: add your package to `scripts/bump-version.sh`. ## Doing the Release From 056b200ccd22e88cd7cb17617f5e7394e57fa92d Mon Sep 17 00:00:00 2001 From: GIancarlo Buenaflor Date: Fri, 17 Nov 2023 16:27:35 +0100 Subject: [PATCH 4/6] Update --- docs/new-package-release-checklist.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/new-package-release-checklist.md b/docs/new-package-release-checklist.md index 135ca401fd..a97ef21011 100644 --- a/docs/new-package-release-checklist.md +++ b/docs/new-package-release-checklist.md @@ -49,4 +49,5 @@ Do these steps in the **correct order** - Instructions on how to do this can be found [here](https://github.com/getsentry/sentry-release-registry#adding-new-sdks) - [Example PR](https://github.com/getsentry/sentry-release-registry/pull/136) - [ ] Add an entry to `.craft.yml` for the package in the `registry` section. - - Now all future releases will be added to the registry automatically. \ No newline at end of file + - Now all future releases will be added to the registry automatically. +- [ ] Update the repo's `README.md` \ No newline at end of file From 6c8c5eb269b308c6185b2c41f3e76e22003984b2 Mon Sep 17 00:00:00 2001 From: Giancarlo Buenaflor Date: Wed, 29 Nov 2023 15:12:13 +0100 Subject: [PATCH 5/6] Update new-package-release-checklist.md --- docs/new-package-release-checklist.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/new-package-release-checklist.md b/docs/new-package-release-checklist.md index a97ef21011..fb48df5837 100644 --- a/docs/new-package-release-checklist.md +++ b/docs/new-package-release-checklist.md @@ -8,6 +8,7 @@ This page serves as a checklist of what to do when releasing a new package for t - [ ] The package only exports the public API - [ ] The package contains an example folder - [ ] The package contains a README.md file + - [ ] CI badges show a status - [ ] The package contains a CHANGELOG.md file (symlink to the root changelog) - [ ] The package contains a dartdoc_options.yaml file (symlink to the root file) - [ ] The package contains a LICENSE (default is `MIT`) @@ -24,6 +25,8 @@ This page serves as a checklist of what to do when releasing a new package for t - [ ] Excluding `your-package-name.yml`, add the package to the `paths-ignore` section of all package workflow files. - For examples see `sqflite.yml`, `dio.yml` etc... + +- [ ] Add an entry to [diagram.yml](https://github.com/getsentry/sentry-dart/blob/main/.github/workflows/diagrams.yml) for your package. - [ ] In the root `.gitignore` file add the package coverage as ignored. @@ -31,7 +34,7 @@ The `analyze` workflow will fail in your PR and in the main branch because the p This is expected - it will succeed after the release. - [ ] Make sure the analyze workflow doesn't have other failures, only the one mentioned above. -- [ ] **The most important**: add your package to `scripts/bump-version.sh`. +- [ ] **Very important**: add your package to `scripts/bump-version.sh`. ## Doing the Release @@ -50,4 +53,5 @@ Do these steps in the **correct order** - [Example PR](https://github.com/getsentry/sentry-release-registry/pull/136) - [ ] Add an entry to `.craft.yml` for the package in the `registry` section. - Now all future releases will be added to the registry automatically. -- [ ] Update the repo's `README.md` \ No newline at end of file +- [ ] Update the repo's `README.md` +- [ ] Prepare and merge [Sentry documentation](https://github.com/getsentry/sentry-docs/)https://github.com/getsentry/sentry-docs/ From 54fbc644270540034cab071622d6b2d2bc83dcef Mon Sep 17 00:00:00 2001 From: Giancarlo Buenaflor Date: Wed, 29 Nov 2023 15:12:49 +0100 Subject: [PATCH 6/6] Update new-package-release-checklist.md --- docs/new-package-release-checklist.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/new-package-release-checklist.md b/docs/new-package-release-checklist.md index fb48df5837..0a7cd19821 100644 --- a/docs/new-package-release-checklist.md +++ b/docs/new-package-release-checklist.md @@ -54,4 +54,4 @@ Do these steps in the **correct order** - [ ] Add an entry to `.craft.yml` for the package in the `registry` section. - Now all future releases will be added to the registry automatically. - [ ] Update the repo's `README.md` -- [ ] Prepare and merge [Sentry documentation](https://github.com/getsentry/sentry-docs/)https://github.com/getsentry/sentry-docs/ +- [ ] Prepare and merge [Sentry documentation](https://github.com/getsentry/sentry-docs/)