-
Notifications
You must be signed in to change notification settings - Fork 125
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace multipack with melos #192
base: master
Are you sure you want to change the base?
Conversation
Co-authored-by: Mike Diarmid <[email protected]>
|
Half way there. check_svg requires invertase/melos#58 to be merged and published still need to investigate how |
|
If you're not automating this with conventional commits then maybe |
Thanks @Salakar for your help. I'll continue tomorrow. |
Actually let's keep |
@agent3bood @agent3bood @smkhalsa It would be nice to hear your opinion about using |
@klavs apologies for not getting to this yet. I've been very busy lately. I'm definitely supportive of the effort to consolidate the projects. I'll try to give melos a go in the next day or two. |
I am try to make this work, first we have to activate |
There's a ton of package filtering options ( Repositories such as this one can also predefine all sorts of scripts in the repositories # ...
scripts:
analyze:
run: melos exec -c 1 -- "dart analyze . --fatal-infos"
description: Run dart analyzer in a specific package.
select-package:
ignore:
- "*monorepo*"
test:
description: Run tests in a specific package.
run: melos exec -c 1 -- "dart pub run test test/\$MELOS_PACKAGE_NAME_test.dart"
select-package:
file-exists:
- "test/$MELOS_PACKAGE_NAME_test.dart" With those defined in the
With the above script definitions optionally including the On CI environments or when
If you want to try out or look at some repositories that have predefined scripts check out: TLDR; this project could add some common used scripts in it's melos.yaml definition to help with running common local development tasks. |
Thank you very much @Salakar! I think it's a good idea to move scripts to |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM – spot checked some CI output and didn't find any false positives.
Moving workflows into melos.yaml
is a good idea but IMO we should call melos run test
etc to maintain granularity in github action view
I'll make some adjustments to get rid of |
@klavs is this ready to go? |
I just revamped However, for
Option 1 seems less tedious and confusing, especially for PRs from external contributors. I can include a github action to enforce conventional PRs. By default, when there are two or more commits in a PR, github uses the PR name as the squashed commit message, so enforcing conventional PRs will make it easier some of the time (but we'd still need to remember to use conventional commit messages when squashing and merging a single commit PR). @agent3bood @TarekkMA thoughts? @Salakar any further suggestions on how best to enforce conventional commits? |
We use a combination of 1 & 2 - but we also allow Rebase alongside Squash Merge - allows multiple commits for those that do them correctly (each being conventional) to get merged 'as is' whilst also allowing Squashing for those that don't. For 1 we don't actually enforce the commits but rather the PR title (see https://github.com/FirebaseExtended/flutterfire/blob/master/.github/workflows/pr_title.yaml) - since this title get's used by GitHub as the commit message default when you start PR merge. However with this approach it's still up to the PR merger to ensure everything is in order. You can also break the release process up on Melos if you want to add an additional review of changelogs before releasing since you don't have to have change logs and versions tagged and committed immediately for a release with Melos; we're probably going to change FlutterFire to something like the following flow sometime:
I would note it doesn't have to be a manual trigger for starting the release process - it's just something we want to do so we can release when we want to, e.g. collate non-critical changes into a larger release. |
What is the status here? |
Drop
multipack
in favor ofmelos
.Publishing should be improved later, but since it's not contributor-facing, it can stay for a bit.
Jobs to migrate:
publish_dry_runpublish