Skip to content

feat(parser-conventional-monorepo): add new conventional-commits standard parser for monorepos #1143

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

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

codejedi365
Copy link
Contributor

Purpose

Rationale

How did you test?

How to Verify

@codejedi365 codejedi365 self-assigned this Jan 12, 2025
@marc-at-brightnight
Copy link

Added docs. Realizing slowly I need this feature ✊🏼

Copy link

This PR is stale because it has not been confirmed or considered ready for merge by the maintainers but has been open 60 days with no recent activity. It will be closed in 10 days, if no further activity occurs. Please make sure to add the proper testing, docs, and descriptions of changes before your PR can be merged. Thank you for your contributions.

@github-actions github-actions bot added the stale label May 18, 2025
@spastorclovr
Copy link

Would love to this this being merge as we are facing the issue of versioning being calculated even on commits not related to the sub project. Any chance on having this merged "soonishly"?

Thx!

@codejedi365
Copy link
Contributor Author

@spastorclovr, thanks for the priority request comment, I've been working on other things as the complexity of validation is not trivial. Will try to get it merged over the next month. Meanwhile, you can add it as a custom parser into your repository with your config pointing to your repository file. It is manually tested and validated by myself and @marc-at-brightnight for his repo so it should work for your environment today.

@spastorclovr
Copy link

Thank you for taking the time to respond! I Will try as suggested. Thx for this project! (currently using it with dagger.io which needs a ready-to-use function which I will do ASAP)

@github-actions github-actions bot removed the stale label May 23, 2025
@codejedi365 codejedi365 force-pushed the feat/monorepo-parser branch 2 times, most recently from e9a1908 to d3856b5 Compare May 26, 2025 16:26
@markdoerr
Copy link

Dear developers,
I would also like to use this new feature :)
What is the current status of this MR ?
Thanx

@codejedi365
Copy link
Contributor Author

@markdoerr, please see comments above. Not ready yet to add it to the baseline but it is available as a custom parser today.

@Triquetra
Copy link

I am eagerly anticipating the release of this feature.

In the meantime, how do I use the monorepo-parser as a custom parser?

@codejedi365
Copy link
Contributor Author

codejedi365 commented Jun 19, 2025

how do I use the monorepo-parser as a custom parser?

Review the documentation on how to set a custom parser value.

And you can use this demo repo as well mirrored off of another contributors described monorepo structure.

It supports file path matching as the primary mechanism for differentiation of projects then as a secondary filter, the use of scope prefixes.

@codejedi365 codejedi365 mentioned this pull request Jun 26, 2025
@codejedi365 codejedi365 force-pushed the feat/monorepo-parser branch from d3856b5 to 8ea6dec Compare July 27, 2025 18:47
@codejedi365 codejedi365 marked this pull request as ready for review July 27, 2025 18:48
@codejedi365 codejedi365 force-pushed the feat/monorepo-parser branch from 8ea6dec to 4b462ca Compare July 27, 2025 19:05
@codejedi365 codejedi365 force-pushed the feat/monorepo-parser branch from 4b462ca to a212f55 Compare July 27, 2025 19:51
@JonZeolla
Copy link
Contributor

@codejedi365 thank you for the recent activity on this. I have found this recently went from a nice to have for me, to a need to have. I will start by adding this as a custom parser but I'd like to offer that my team could assist with testing or similar if you'd like. I will report back if I encounter significant issues.

NOTICE: This release introduces a new built-in parser type that can be
utilized for monorepo projects. The type value is `conventional-monorepo`
and when specified it will apply the conventional commit parser to a
monorepo environment. This parser has specialized options to help handle
monorepo projects as well. For more information, please refer to the [Monorepo
Docs](https://python-semantic-release.readthedocs.io/en/stable/monorepos.html).
@codejedi365 codejedi365 force-pushed the feat/monorepo-parser branch from 15f0c67 to fa9b2c6 Compare July 28, 2025 01:54
@codejedi365
Copy link
Contributor Author

codejedi365 commented Jul 28, 2025

@codejedi365 thank you for the recent activity on this. I have found this recently went from a nice to have for me, to a need to have. I will start by adding this as a custom parser but I'd like to offer that my team could assist with testing or similar if you'd like. I will report back if I encounter significant issues.

@JonZeolla, thanks for the pep talk, lol! I have to duplicate and refactor the entire e2e testing suite to support monorepos. This is a beast. Likewise, I also have a project using a monorepo which gives me the reason to make this standard. Please indicate if you do have any issues. It has been tested before in the repo: https://github.com/codejedi365/psr-monorepo-poweralpha, which was a demo for another user but I do keep modifying this to make it work within PSR. You may find that you want to just combine the Options class with the Parser class into the same file to allow you to just specify the parser via a file path. I plan to write automated tests for: one trunk-only repo with one release channel, 2 GitHub Flow repos (with 1 and 2 release channels respectively) initially. The changelogs will be internal to the packages but use a common templates directory.

Given that human git strategies rarely maintain the strict standard as my automated tests do, it will be helpful if you identify flaws with the current implementation.

@JonZeolla
Copy link
Contributor

Will do. So far my e2e tests with the custom parser are working like a charm. I'll be testing it more this week and will report issues. No news is good news :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy