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: dev-unsubscr...@guacamole.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to