Skip to content

Release sub-projects separately #245

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
samuel-rufi opened this issue Oct 25, 2022 · 4 comments
Open

Release sub-projects separately #245

samuel-rufi opened this issue Oct 25, 2022 · 4 comments

Comments

@samuel-rufi
Copy link

samuel-rufi commented Oct 25, 2022

Hi @jbolda,

we would like to use your Covector CI plugin to automatically manage releases for our repository containing multiple packages. Unfortunately I'm not really sure how to configure it correctly to release packages separately.

This is our repository: https://github.com/samuel-rufi/wallet.rs/tree/develop/bindings
We would like for example release the nodejs-binding package but wait with release of java-binding package. Is this possible to do?

I tried to deactivate version and publish fields for java-binding using https://github.com/samuel-rufi/wallet.rs/blob/develop/.changes/config.json but in the case there exist new changefiles for both nodejs-binding and java-binding, the "Version Changes PR" will also "close" the java-binding changefiles even if that package is deactivated. And since it "closed" the java-binding changefiles already when doing a Java release later the CHANGELOG will miss the changefiles.

Do I use changefiles in the wrong way?
Do you maybe have an example of a workflow supporting different packages that need to be released separately?

Many thanks in advance,
Samuel

@samuel-rufi
Copy link
Author

samuel-rufi commented Nov 1, 2022

@jbolda do you have any tips? many thanks

@jbolda
Copy link
Owner

jbolda commented Nov 5, 2022

@samuel-rufi, we currently don't have a great way to automate / semi-automate the release of packages separately. There are a lot of situations laced with nuance that make it difficult to handle. I haven't figured a way to handle it without any input from the user. Even then, I don't know what input would make sense to help someone manage it.

Separate languages is a pretty clear delineator, but if one language bundles and includes assets from another then it is a pretty hard dependency. If you always want to manage them completely separate and there are no dependencies, we could maybe handle this by having multiple .changes folders.

As an aside, what does your versioning for java look like? Are you using that package.json as a cheeky way to hold the version?

@samuel-rufi
Copy link
Author

Hi @jbolda, yes our package.json file in Java is just a way to hold the version. Having multiple .changes folders would make separate releases possible I think, seems like a great solution to me!

Or maybe even some sub-folder structure (but I guess this might be a bit more complicated):
.changes/config.json
.changes/java
.changes/node-js

Many thanks for the help.

@jbolda
Copy link
Owner

jbolda commented Dec 10, 2022

I have been thinking a bit about this and to really reasonably manage it feels like we need to CLI to understand that it has "children" config that is intended to treat differently.

Were you able to test some of this implementation out? What is feeling painful with it?

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

No branches or pull requests

2 participants