More details on Point 4 (see below). Cheers, Erich Erich Wälde writes:
> Dear AmForthers, > > I asked: >> - How do I actually create a new release? Copying the files is >> one thing, but where do I need to change the version? There >> is more than one place, I'm afraid. I also happen to know >> that after 6.9 there cannot be 6.10 due to a limitation >> created very early. Matthias told me that, otherwise I would >> be clueless. > see https://sourceforge.net/p/amforth/mailman/message/37048278/ > > > > How to create an official release? > > I spent some time to do some code archeology. I still do not know, > how to properly make a release. This is, what I currently > see/expect: > > 1. check all version numbers in trunk > > - doc/Makefile being one place. This seems to be used in all > generated documentation, which is nice. > - common/words/env-forthversion.asm is another place with different > syntax! > Judging by commit r2271, these are all places indeed. Yay! > > 2. update doc/source/index.rst and optionally history.rst in > trunk and commit > > 3. "svn copy" trunk to releases/$VERSION; commit message collects > the accumulated one line change descriptions > This is the most visible change in the source tree > e.g. see commit r2244 (rel 6.5) > > 4. create all .hex files for target boards in appl/ > arduino,atmega2561,eval-pollin,hifive1,launchpad-arm,launchpad430, > template > > I had forgotten that these exsisted. They are in the release archive > only, not in the source tree. Now I understand, why people > sometimes ask about them. > > This step is detailed in a few .xml files. Matthias used ant to > build them. I have not built these before, but this looks doable, > provided I get all relevant toolchains up and running. Digging through the ./appl/ subdirectory I think I understand the following: - There are currently 8 target directories. - all of them have either build.xml or Makefile files - of the AVR8 targets all can be build with the exception of "arduino/leonardo" --- this runs into the "8k is too small" limitation. There used to be an avr-butterfly target (up to 6.4), which suffers from the same limitation, iirc. AVR needs the wine/avrasm2.exe toolchain. - the remaining targets need different toolchains, which I have not installed at this moment. - hifive1 riscv64-linux-gnu-as In the download section Matthias has provided a toolchain, see: https://sourceforge.net/projects/amforth/files/Risc-V-Tools/ However, this toolchain is very hip today, so it is available at den Debian repositories as well: gcc-riscv64-linux-gnu/stable I actually have such a board collecting dust in the corner :-/ - launchpad-arm arm-none-eabi-as This toolchain is available at the debian repositories as well: gcc-arm-none-eabi/stable - launchpad430 naken_asm This tool is available, maintained and probably quite mature: http://www.mikekohn.net/micro/naken_asm.php In 2015 I have made experiments with this toolchain, so this part is probably doable. - inux-arm arm-linux-gnueabi-as This toolchain is available at the debian repositories as well: gcc-arm-linux-gnueabi/stable I do not have any msp430 or arm boards any more. I have given them away. So all in all, the toolchains are available. Matthias has probably built a bunch of docker containers to run them :-) A little while later: Installing the missing toolchains on Debian turns out to be fairly simple (thank you, Debianistas!): # apt install binutils-riscv64-linux-gnu \ binutils-arm-linux-gnueabi \ binutils-arm-none-eabi I had a copy of naken_asm (from 201(5) in some corner and with that executable on the PATH, I could build launchpad430 So with the exception of arduino/leonardo.* I managed to build everything that shows up in the release archive. > ew@ceres:~/Forth/amforth/trunk/appl 119 > ls -l */*.hex */amforth > -rw-r----- 1 ew ew 239 2020-08-30 11:28 arduino/duemilanove.eep.hex > -rw-r----- 1 ew ew 26843 2020-08-30 11:28 arduino/duemilanove.hex > -rw-r----- 1 ew ew 239 2020-08-30 11:28 arduino/mega128.eep.hex > -rw-r----- 1 ew ew 27959 2020-08-30 11:28 arduino/mega128.hex > -rw-r----- 1 ew ew 239 2020-08-30 11:28 arduino/uno.eep.hex > -rw-r----- 1 ew ew 27157 2020-08-30 11:28 arduino/uno.hex > > -rw-r----- 1 ew ew 239 2020-08-30 11:31 atmega2561/atmega256.eep.hex > -rw-r----- 1 ew ew 27481 2020-08-30 11:31 atmega2561/atmega256.hex > > -rw-r----- 1 ew ew 239 2020-08-30 11:27 eval-pollin/p1284-16.eep.hex > -rw-r----- 1 ew ew 28096 2020-08-30 11:27 eval-pollin/p1284-16.hex > -rw-r----- 1 ew ew 239 2020-08-30 11:27 eval-pollin/p16-8.eep.hex > -rw-r----- 1 ew ew 27518 2020-08-30 11:27 eval-pollin/p16-8.hex > -rw-r----- 1 ew ew 239 2020-08-30 11:27 eval-pollin/p32-8.eep.hex > -rw-r----- 1 ew ew 27682 2020-08-30 11:27 eval-pollin/p32-8.hex > -rw-r----- 1 ew ew 239 2020-08-30 11:27 eval-pollin/p328-16.eep.hex > -rw-r----- 1 ew ew 27771 2020-08-30 11:27 eval-pollin/p328-16.hex > -rw-r----- 1 ew ew 239 2020-08-30 11:27 eval-pollin/p644-16.eep.hex > -rw-r----- 1 ew ew 27796 2020-08-30 11:27 eval-pollin/p644-16.hex > > -rw-r----- 1 ew ew 47833 2020-08-30 13:17 hifive1/hifive1.hex > > -rw-r----- 1 ew ew 44449 2020-08-30 13:23 launchpad-arm/lp-stellaris.hex > -rw-r----- 1 ew ew 23068 2020-08-30 13:12 launchpad430/lp-2553.hex > -rw-r----- 1 ew ew 23132 2020-08-30 13:12 launchpad430/lp-5529.hex > -rw-r----- 1 ew ew 22568 2020-08-30 13:12 launchpad430/lp-5969.hex > > -rwxr-x--- 1 ew ew 68528 2020-08-30 13:20 linux-arm/amforth* > > -rw-r----- 1 ew ew 239 2020-08-30 11:34 template/template.eep.hex > -rw-r----- 1 ew ew 27475 2020-08-30 11:34 template/template.hex This pretty much solves point 4 So the whole thing more "shell script like" cd /path/to/../amforth/trunk ( cd avr8; ln -s /path/to/AvrAssembler2 ./Atmel ) cd appl # these are avr targets # arduino fails on leonardo (8k too small problem) for DIR in arduino atmega2561 eval-pollin template do ( cd $DIR; ant compile ) done sudo apt install binutils-riscv64-linux-gnu \ binutils-arm-linux-gnueabi \ binutils-arm-none-eabi for DIR in hifive1 launchpad-arm linux-arm do ( cd $DIR; make ) done # remove the "git-info" dependency from launchpad430/build.xml ( cd launchpad430; make lp-2553.hex lp-5529.hex lp-5969.hex ) > 5. create the documentation > - htdocs, the web page > - books, did you know that all the content of the webpage shows up > in amforth.pdf (made with pdflatex) and AmForth.epub (made with > sphinx-build)? Amazing! These books are part of the download .zip > archive. > > This step is a "cd doc; make all" --- provided sphinx pdflatex > and all the good stuff is installed. > > 6. create a new temporary tree to collect everything, that goes into > the release archive: > - sources > - some of the scripts, tools, meta-files > - the generated documentation from releases/$VERSION, without the > document sources, but including the "books" > > I have not found anything that looks like doing this. > > 7. create the .zip and .tar.gz archives (the easy part), and upload > them to their correct location in the sourceforge.net file tree > (the not so obvious part). > > I found out that these release archives were built by Matthias. > The files for 6.8 are about 7 MB in size. > > Whereas if you download "the latest sources", sourceforge will > generate a snapshot of "trunk". This is a plain copy, without all > the niceties included in the archives mentioned here. This archive > is currently 35 MB in size. > > 8. sync the generated documentation with the online website > > I have done this a few times now, but I'm still asking myself, if I > see all relevant pieces or not. > > 9. Increment the version numbers in trunk and commit > > > So nine easy steps to code nirvana? Hmmm. > > If anyone has some insight or detail I'm missing, I would be > happy to hear about it. I propose to rework this into a .rst > document and add it to the source tree, once missing bits have > emerged (points 4, 6, 7). > > Cheers, > Erich _______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ Amforth-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/amforth-devel