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.

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

-- 
May the Forth be with you ...


_______________________________________________
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel

Reply via email to