mike-jumper commented on PR #896:
URL: https://github.com/apache/guacamole-client/pull/896#issuecomment-1793512994
> With the transition to Angular and TypeScript, it would be nice if
guacamole-common-js was offered as an "official" package at npm. @mike-jumper
was already positive about this idea.
Ah, yes - that guy. ;)
> What could be the procedure for realizing this?
The build would need to be altered however necessary to produce that package
_and_ consume it.
The current Maven-based process is:
1. The `guacamole-common-js` Maven project produces a `.zip` artifact
consumable by other Maven projects.
2. The `guacamole` Maven project consumes the `guacamole-common-js` artifact
as part of the overall `guacamole-client` build.
3. When a release candidate is being produced, the `guacamole-common-js`
artifact is pushed to a staging Maven repository.
**NOTE:** It's important here that the artifact for a release candidate
is the same as the artifact for the actual release. Its version number doesn't
change, the binary doesn't get rebuilt; it gets staged, tested, and when the
release passes vote its promoted directly without any
modification/regeneration/rebuilding of any kind.
4. When a release candidate is being promoted to release, all staged
artifacts (including `guacamole-common-js`) are released and get automatically
synced to Maven Central.
An NPM-based process would need to be:
1. The `guacamole-common-js` Maven project produces an NPM artifact
consumable by other NPM projects (and Maven projects that use NPM via plugins).
If possible, we should also still produce a Maven artifact.
2. The `guacamole` Maven project consumes the `guacamole-common-js` artifact
as part of the overall `guacamole-client` build, whether via an NPM artifact or
a pure Maven artifact.
3. When a release candidate is being produced, the `guacamole-common-js`
artifact is staged to NPM (somehow) as a release candidate. If we still produce
a Maven artifact, that would be pushed to staging, too. As with the pure Maven
process, it would be important that the staged artifact(s) are always the
artifact(s) that are released - the release of a release candidate shouldn't
involve rebuilding and potentially producing something that isn't what was
tested as the release candidate.
4. When a release candidate is being promoted to release, all staged
artifacts (including `guacamole-common-js`) are released and get automatically
synced to Maven Central, NPM, etc.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]