mirror of
https://github.com/bisq-network/bisq.git
synced 2024-11-19 18:03:12 +01:00
d218094269
Problem: When resolving Bisq libraries, e.g. `core` or `network` from JitPack for use in other components like bisq-seednode or bisq-pricenode, we have historically, resolved them by tag or by branchname, e.g. with GAV coordinates like `io.bisq:core:v0.6.7` or `io.bisq:core:master`. This works well enough, but now that we are beginning to modularize more aggressively, we want to make sure that it's possible at any time to publish the latest snapshots of these libraries to one's own local ~/.m2 repository such that they can be easily resolved from downstream components without the need to push commits to the bisq-network/exchange remote, and to wait for JitPack to do a just-in-time build. Solution: By updating the version value of all modules here in the exchange repository from 0.6.7 => 0.7.0-SNAPSHOT, one can run `mvn install` to publish the latest "snapshot" of exchange libraries to the local ~/.m2 repository and be sure to resolve them from whatever downstream component that they are working on. The -SNAPSHOT qualifier ensures that no caching occurs, and that the very latest such binary will always be used. This new arrangement creates a situation where one can transparently resolve these dependencies remotely from JitPack and then subsequently resolve them locally from one's ~/.m2 repository without having to change a line of code. It also opens up the ability to manage all Bisq components together in a single IDE window as if they were all in one repository, avoiding the need even to issue a `mvn install` command to publish locally--but that's not the main focus of this change. Note that the change to 0.7.0 here is based on the fact that we already planned to have the next version shipped from `master` be 0.7.0, as there are quite a few new UI changes that probably merit the bump in minor version. The version change also aligns well with the fact that we're modularizing a number of components right now, and all newly-extracted components have been jumping to v0.7.0 to indicate their new independent status. This has been the case with bisq-seednode and pricenode so far. Finally, it is important to note here that the ONLY versions updated by this change are those specific to Maven metadata and therefore artifact management / dependency resolution. The version that the Bisq desktop client reports in its UI and to the network in its user agent has NOT been changed, on account of the fact that users may run Bisq from source, and we need to think through more fully the implications of reporting a verison like 0.7.0-SNAPSHOT in those situations. Here is a list of files containing the old version (0.6.7) that have NOT been updated: - common/src/main/java/io/bisq/common/app/Version.java - package/linux/32bitBuild.sh - package/linux/Dockerfile - package/osx/create_app.sh - package/osx/finalize.sh - package/windows/32bitBuild.bat - package/windows/64bitBuild.bat - package/windows/Bisq.iss - package/linux/64bitBuild.sh One thing we know for sure that wouldn't work here is that Bisq's Version class currently does not support -SNAPSHOT qualifiers. It just breaks the version string validation entirely. So we'd need to patch that in any case if we do decide it's a good idea to let pre-release builds report their version accurately. |
||
---|---|---|
.. | ||
src | ||
pom.xml |