Comments (17)
Hmm, strange. I'll delete the tag and the latest release once more, to see if there was some inconsistency. Possibly I deleted the tag but not the release...
..and btw.: Thanks for the support, it (was) / is a pleasure :-)
from libosmscout.
https://github.com/jreleaser/helloworld-cpp may also serve as inspiration 😏
from libosmscout.
After some analysis, I'm not sure how much JReleaser will be helpful since meson already will build a distribution.zip and .xz. I'm not sure if I can use JRelease in such a mode that it reuses a generated archive. The rest of JReleaser of course would still be (very) helpful. If you have any experience, I'm happy to get further hints :-)
from libosmscout.
Yes, it may be used in such way. JReleaser provides an assemble
step for convenience but does not require distributions to be assembled with it. You may create archives in any way you deem necessary.
from libosmscout.
This being said, I'd love to learn from the build setup found in this repository to create another helloworld-cpp
project that follows its build procedure.
from libosmscout.
OK; I'll take a look. Is there already a demo for "do my own assembly". It does not need to be for C++, I'll manage it ;-) I did check for the JReleaser build, too, at the time I got the release build for AcousticRules working. I'll still have a week holiday, so I hope I get it working by then ;-)
The most difficult question is which versioning scheme I should use for a library that only does regular snapshot releases but does not want to handle SEMVER is all details...
from libosmscout.
https://github.com/aalmiray/app/ it's a Java based app but uses Maven's appassembler & assembly plugins to create the archive. This would be similar as producing archives with meson. Notice that in this case the jreleaser.yml
file has no assemble configuration and it explicitly lists a distribution with matching artifacts.
JReleaser supports 5 different versioning schemes https://jreleaser.org/guide/latest/reference/project.html#_version Perhaps one of them may be a match for you. Worst case scenario semver would be the way to go.
from libosmscout.
I have now decided to allow separation of the library version from the release version in the meson build files. This way we can use CHRONVER for releases and still are able to use SEMVER for the libraries
from libosmscout.
See jreleaser/jreleaser#1295 ;-)
from libosmscout.
So now I managed to create a snapshot release. Choosing CHRONVER made some trouble because it now expects that a release has a compatible release string. See issue above. Another problem is, that it tries to parse existing release to build up a changelog. While I have created a "fake release" it still seems to create a changelog over a long period of time, because it has problems with parsing the older versions as CHRONVER - at least that si what I assume. If I got the regular release job running I may delete the old release and test again...
[INFO] Generating changelog
[WARN] Cannot parse version '1.0.0'
@aalmiray : I did not yet made a ticket for that problem, because a first judgment on your side would be helpful.
from libosmscout.
Correct. JReleaser assumes all tags follow the same convention. One option to stop long lookups is to explicitly list the previousTagName
alongside the current tagName
in the release
section. It will still show a warning due to mismatched format but it should produce a changelog much faster.
from libosmscout.
I also had problems with the protected master branch which does not allow to commit the release version. Not a problem for me.
@aalmiray I have deleted the older releases and the problem disappeared. One last problem is still open though: I have multiple "latest" releases. I assumed (and it did work for acousticrules), that a new "latest" release deletes the old "latest" release in the github release list. I assume that there is still some configuration problem - or it is a side effect of CHRONVER handling?
from libosmscout.
If the project is marked as snapshot then a "latest" release (identified with tag early-access) is always overwritten. Otherwise you must explicitly ser overwrite
to true
inside release.github.
re: branch protection. JReleaser pulls/pushes to the same branch identified by the releaser settings. I think adding an explicit branch for push (defaulting to same as pull) should be the way to go forward. We added this feature to package manager repositories but forgot to add it to releasers.
from libosmscout.
FWIW you may leave the branch
value unset in jreleaser.yml
. This will pick up the branch name from git metadata. Next, you may use a JRELEASER_BRANCH
environment variable to override this setting. This can help you switch branches programmatically with one caveat: the branch must exist (local and remote) before JReleaser is invoked. This will be easier once explicit push branch support is added.
Filed jreleaser/jreleaser#1296
from libosmscout.
Though I have a snapshot section as follows:
snapshot:
pattern: .*-latest
label: latest
fullChangelog: true
Especially with label = latest, I still get multiple latest releases.
Snapshot is correctly detected, see https://github.com/Framstag/libosmscout/actions/runs/4521006294/jobs/7962487259:
[INFO] Project version set to 2023.03.25.1-latest
[INFO] Release is snapshot
Hmm, looking at the output:
[DEBUG] looking up release with tag latest at repository Framstag/libosmscout
[DEBUG] fetching release on Framstag/libosmscout with tag latest
[DEBUG] release latest does not exist
[DEBUG] creating release latest
[DEBUG] deleting tag latest from Framstag/libosmscout
[DEBUG] tagging local repository with latest
I would claim, however, that a tag latest has existed. Strange... What can I do to further clarify what happens?
from libosmscout.
I've configured a sample project in the same way as yours:
project:
name: app
description: Sample application
longDescription: Sample application
links:
homepage: https://acme.com/awesome-app
authors:
- Andres Almiray
license: Apache-2.0
java:
groupId: com.acme
version: 8
inceptionYear: 2021
versionPattern: CHRONVER
snapshot:
pattern: .*-latest
label: latest
fullChangelog: true
release:
github:
overwrite: true
sign: true
changelog:
formatted: ALWAYS
preset: conventional-commits
contributors:
format: '- {{contributorName}}{{#contributorUsernameAsLink}} ({{.}}){{/contributorUsernameAsLink}}'
signing:
active: always
armored: true
Then set JRELEASER_PROJECT_VERSION
to 2023.03.26.1-latest
and ran jreleaser release
twice:
1st invocation
[INFO] Releasing to https://github.com/aalmiray/foobar@main
[DEBUG] fetching all branches on aalmiray/foobar
[DEBUG] looking up release with tag latest at repository aalmiray/foobar
[DEBUG] fetching release on aalmiray/foobar with tag latest
[DEBUG] release latest does not exist
[DEBUG] creating release latest
[DEBUG] deleting tag latest from aalmiray/foobar
[DEBUG] tagging local repository with latest
[DEBUG] creating release on aalmiray/foobar with tag latest
[INFO] - uploading checksums_sha256.txt
[INFO] - uploading checksums_sha256.txt.asc
[INFO] Writing output properties to out/jreleaser/output.properties
2nd invocation
[INFO] Releasing to https://github.com/aalmiray/foobar@main
[DEBUG] fetching all branches on aalmiray/foobar
[DEBUG] looking up release with tag latest at repository aalmiray/foobar
[DEBUG] fetching release on aalmiray/foobar with tag latest
[DEBUG] release latest exists
[DEBUG] deleting release latest
[DEBUG] creating release latest
[DEBUG] deleting tag latest from aalmiray/foobar
[DEBUG] tagging local repository with latest
[DEBUG] creating release on aalmiray/foobar with tag latest
[INFO] - uploading checksums_sha256.txt
[INFO] - uploading checksums_sha256.txt.asc
[INFO] Writing output properties to out/jreleaser/output.properties
from libosmscout.
IMHO the problem with the two "latest release" is the only problem left. I have no idea about the cause, since it works as design in one of my other projects (acousticrules).
from libosmscout.
Related Issues (20)
- Coastline drawing is broken when angle != 0 HOT 2
- Why so many build techs? HOT 2
- BoundingBox of imported database too big HOT 6
- What about make Qt 6 the default in CMakelists.txt? HOT 6
- Importing data into an existing database / merging databases HOT 8
- Bounding box and Speed HOT 2
- PlaneMapRenderer redraws map only on center change, not on zoom change HOT 1
- Rendering Maldives lags libosmscout and gives a lot font errors HOT 8
- Rendering way of type "_route" is masked by bridges HOT 6
- Implementing a tile server via libosmcout HOT 7
- Layer rendering issues with tile rendering HOT 1
- Lots of "Warning: Unknown type" HOT 18
- Question regarding RoutingDatabase::GetRouteNodes() HOT 2
- Way missing in MapService query HOT 5
- `MapService::LoadMissingTileData()` produces more data than expected HOT 7
- Missing forest near Swedish national park Muddus HOT 1
- Compilation issues for iOS and XCode 15 HOT 5
- Add libosmscout to Taginfo Projects HOT 2
- Searching for "Zbraslavice 255" in Czechia give no results, but "Zbraslavice Zbraslavice 255" yes
- Compilation error for libosmscout-client on MacOS HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libosmscout.