View Issue Details

IDProjectCategoryView StatusLast Update
0010623Talermerchant backoffice SPApublic2025-11-17 21:25
Reportersebasjm Assigned ToFlorian Dold  
PrioritynormalSeverityminorReproducibilityhave not tried
Status feedbackResolutionopen 
Summary0010623: replace the prebuilt SPA development release procedure
Descriptionwhat we have:

taler-typescript-core/ $ make backoffice-dev-prebuilt
... checkout a prebuilt/ in the worktree
... uses contrib/next-dev-version.sh to increment the version
... compile & test or die
... commit the version number on package.json that is going to end on prebuilt
... push changes on current branch
... copy `dist` folders into `prebuilt` worktree
... push changes on prebuilt branch

taler-merchant/ (manually)
... go into contrib/wallet-core update to the latest commit on prebuilt branch
... update spa lock file
... push changes

problems:
 - still some manual work
 - duplicated version tags (due to long lived branches)
 - backoffice version should follow merchant.git versioning number
 - if we publish a new version from master or release/1.1.x it should be unambiguous when updating merchant.git if we are taking the latest 1.2 dev prebuilt or the latest 1.1 dev prebuilt


proposal:

taler-typescript-core/ $ make backoffice-dev-prebuilt
... checkout a prebuilt/ in the worktree
+- get version from package.json, check the latest dev prebuilt from tags
  // for example, if it gets "1.2.0" from package.json
  // search for tags starting with "backoffice-spa-1.2.0-dev.*"
  // if not found it can assume that this is -dev.1
... compile & test or die
... commit the version number on package.json that is going to end on prebuilt
  // this commit will mark the source used to build the dev prebuilt
++ tag commit with backoffice-spa-v1.2.0-dev.(n+1)
  // this tag the source that is going to be use to construct the prebuilt
... push changes on master
... copy `dist` content into `prebuilt` worktree
  // in this case the content will go on "spa/backoffice/v1.2.0-dev.2"
... push changes on prebuilt branch

taler-merchant/ $ ./contrib/update-latest-prebuilt-spa
++ get current version of the repo
 // mechant.git is right now 1.2.0 on master
... update submodule taler-typescript-core tags to the latest remote/prebuilt
++ list all tags starting with 1.2.0 with -dev.N , order desc by N, take the highest
 // in this case it will search for "backoffice-spa-1.2.0-dev.*"
... updates the spa lock file with latest dev
 // the tag is in the source code, but the folder is in prebuilt
 // the the folder is not present it should be rebuilt from source
 // and pushed again in the prebuilt branch
... commit and push changes on current branch

note:
 - since we are talking about merchant the script has 'backoffice-spa' hardcoded (we will have one script per component)
 - prebuilt is always append, consumer repo of wallet-core prebuilt will always update with newest content. in case of rollback changing lock file should be enough


ADDITIONAL CHANGE:

Makefile.am is taking content from:

dist_spapkgdata_DATA = \
  wallet-core/backoffice/bof \
  wallet-core/backoffice/index.css \
  wallet-core/backoffice/index.css.map \
  wallet-core/backoffice/index.html \
  wallet-core/backoffice/index.js \
....

 and it should take the content from

dist_spapkgdata_DATA = \
  wallet-core/backoffice/$VERSION/bof \
  wallet-core/backoffice/$VERSION/index.css \
  wallet-core/backoffice/$VERSION/index.css.map \
  wallet-core/backoffice/$VERSION/index.html \
  wallet-core/backoffice/$VERSION/index.js \

which corresponds to the bootstrap

# Generate Makefile.am in contrib/
cd contrib
rm -f Makefile.am
find wallet-core/backoffice/ -type f | sort | awk '{print " " $1 " \\" }' > Makefile.am.ext
# Remove extra '\' at the end of the file
truncate -s -2 Makefile.am.ext
cat Makefile.am.in Makefile.am.ext >> Makefile.am
# Prevent accidental editing of the generated Makefile.am

So this will need to be refactored in order to make it work.
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2025-11-17 19:11 sebasjm New Issue
2025-11-17 19:12 sebasjm Assigned To => Florian Dold
2025-11-17 19:12 sebasjm Status new => feedback
2025-11-17 19:13 Florian Dold Summary replace the development release procedure => replace the prebuilt SPA development release procedure
2025-11-17 20:09 sebasjm Description Updated
2025-11-17 20:13 sebasjm Description Updated
2025-11-17 20:18 sebasjm Description Updated
2025-11-17 21:25 sebasjm Description Updated