mtmse / pipeline-mod-mtm

MTM specific modules for the DAISY Pipeline 2
0 stars 0 forks source link

Standalone building conflicts with the pipeline "super" project #29

Open joeha480 opened 7 years ago

joeha480 commented 7 years ago

When building as part of the "super" project, it's fine to use 1.9.17-SNAPSHOT of braille-modules, because it is also built there. However, when building standalone, there isn't a published snapshot available of that version. Should I revert to 1.9.16-SNAPSHOT, or stop building standalone?

joeha480 commented 7 years ago

@bertfrees What do you think?

bertfrees commented 7 years ago

I used to work according to this pattern (in any of the sub-repos): whenever I had an external snapshot dependency, I added a comment saying which branch of which project needed to be built in order to get the snapshot. I would never have external snapshot dependencies in "master" or "develop" branches.

Now I tend to use the super project for creating branches that have snapshot dependencies between sub-repos. One of the reasons for creating the super project was exactly because checking out and building all the right branches of all sub-repos was troublesome and error-phrone.

I suggest you revert to 1.9.16 on the master branch of pipeline-mod-mtm (while keeping 1.9.17-SNAPSHOT in the super-project). If you want the two to be completely in sync, it means that for the "standalone" build you would need to build the correct branch of pipeline-mod-braille locally to get 1.9.17-SNAPSHOT.

You wouldn't have to build any snapshot dependencies locally if they where all published somewhere, but that isn't possible because there can be only one published snapshot but there are a lot of candidates. I used to publish the snapshots of the master branch (we still do it for most other modules I think), but I've always found public snapshots evil so I've stopped doing that. "master" probably isn't the version you need anyway.

joeha480 commented 7 years ago

Thanks. I agree completely that using public snapshots is a bit of a mess. However, I am still thinking along the lines of deprecating the standalone project... or using a different branch in the super project for syncing with this project maybe, but I don't want to get too advanced with the subrepo stuff.

bertfrees commented 7 years ago

If you deprecate the standalone project there is no build problem anymore, simple as that. There still remains the question whether you want to make releases of pipeline-mod-mtm, but that's a different issue.

Maintaining two branches is the other solution but indeed requires some more work. However this solution also solves the releasing issue: you simply use the second branch (the branch with no snapshot dependencies) to make your releases from.

If you really don't want to get involved with the subrepo thing, you could also consider to simply maintain both branches within the super-project only. On the other hand I don't think you have to be too afraid of the syncing. By the way I'm working on some tools to make it easier/more automatic.

Keep in mind that the syncing only makes sense if it is beneficial to keep something in a separate repository. In the case of the Pipeline, we decided to keep on syncing because some modules make sense to exist standalone (maybe not all modules but for now we consider them all alike). In your case it's maybe different.