quickfix-j / quickfixj

QuickFIX/J is a full featured messaging engine for the FIX protocol. - This is the official project repository.
http://www.quickfixj.org
Other
933 stars 607 forks source link

Publish nightly snapshots #769

Open Arthurm1 opened 4 months ago

Arthurm1 commented 4 months ago

Is your feature request related to a problem? Please describe. QuickFixJ isn't released that often but there are often new commits that may have already fixed any issue I might currently have.

I'm experiencing the same as this stackoverflow issue and I'd like to test unreleased versions of QuickFixJ to see if they fix my problem.

Describe the solution you'd like I'd like to see snapshots posted to a public repo whenever a new PR has been merged. That means I can easily test to see if my issue has been fixed.

Describe alternatives you've considered I could build from source but that does involve a number of steps. It also doesn't allow me to easily switch between a number of snapshots to check which fixes my issue.

Another option would be more frequent proper releases of QuickFixJ but I imagine that's a lot of overhead for you to support.

chrjohn commented 4 months ago

Hi @Arthurm1 , I thought about this myself some time ago... Currently I don't have much time to look into this, but I could imagine that there already is some github action that would do that for me. Maybe you could check if you find something useful? Otherwise I'll look into it whenever I have the time.

Arthurm1 commented 3 months ago

@chrjohn Sadly I don't use Maven or github for publishing. I'm struggling to work out how you're currently using github for publishing or do you run the process locally/manually.

chrjohn commented 3 months ago

There is a scheduled run every morning. https://github.com/quickfix-j/quickfixj/blob/d7c9fe52fabdc56f28ace4063f6ac78fe422b511/.github/workflows/maven.yml#L8

For releases we use Sonatype which also have a snapshot repo. Maybe we can change the scheduled run to upload a snapshot daily. But need to figure out that it is not done on every pull request run.

the-thing commented 3 months ago

@chrjohn

Wouldn't it be better to have additional workflow for that? There seem to be a solution suggested here https://github.com/orgs/community/discussions/27128

It seems to trigger only when there was an actual commit in the last 24h, which might be desired not to publish unchanged artifacts, but also a possible problem when a nightly build fails due to a flaky test (there would have to be a new commit to master branch so the next day build pick it up).

chrjohn commented 3 months ago

@the-thing sounds reasonable. Thanks for checking. 👍

chrjohn commented 1 week ago

Thought a little more about this. Probably the easiest would be if we just upload a snapshot each day regardless of whether there was a change in the last 24 hours or not.

chrjohn commented 1 week ago

Reading further on this topic it seems that SNAPSHOT version are not allowed anymore on Sonatype/Maven Central. So probably will either do a nightly release each day (which would be shown here https://github.com/quickfix-j/quickfixj/releases ) or to upload to Github Packages. Probably the latter is more favourable. People would need to modify their settings.xml (see https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry ) but it would do all the maven magic like downloading dependencies. If we do a nightly release it would be a binary distribution which I'm thinking about to ditch anyway (see https://github.com/quickfix-j/quickfixj/discussions/734).

Any thoughts @Arthurm1 @the-thing ?

Thanks

the-thing commented 1 week ago

This sounds good to me. I would release the nightly build to GitHub Maven repository and keep current release unchanged and possibly remove this zip release file.