HowToRelease

System Requirements

Windows

To follow the instructions in this document you will need

  1. Packaging Bulk
    1. InnoSetup (ISSC.exe should be in your PATH for this)
    2. The latest EUPHORIA package that can translate the sources you want to release.
  2. For HTML Documentation
    1. New binary of creole or sources for creole version 868ec80ac220 (available at http://scm.openeuphoria.org/hg/creole/archive/868ec80ac220.zip)
    2. New binary of eudoc or sources for eudoc version eudoc-e26448c0ead1 (available at http://scm.openeuphoria.org/hg/eudoc/archive/8dcb5944551b.zip)
  3. Binaries
    1. UPX (Executable compressor utility) in your PATH
    2. Sources for EUPHORIA either by downloading from the site (http://scm.openeuphoria.org/hg/euphoria) or through Mercurial. On release this will have the tag. If you did a clone, and this does take several hours, then you can simply update to the version you are packaging.
    3. Some combination of pre-built libraries of the tip and compilers and all of the prebuilt binaries as well if no compiler.
  4. PDF Documentation
    1. euphoria.pdf should go into CODIR/source/build/euphoria.pdf
    2. New binary of eudoc or sources for eudoc (available at http://scm.openeuphoria.org/hg/eudoc)
    3. New binary of creole
    4. TeX live package for any platform or Miktex for Windows.

Creating Package or Installer

Windows

Let EUDIR be your existing production path of 4.0.0 and CODIR be your checkout trunk path of the 4.0 branch or 4.1 (the main trunk). CODIR must contain no local changes. Use 'hg status' and ensure there is no output. Make sure that 'hg outgoing' produces no output.

  1. Unless CODIR and EUDIR are the same directory, change your current directory to CODIR/bin and remove all exe, a, and lib files.
  2. CREOLE
    1. Unpack your new creole distribution into some directory CREOLE.
    2. Run 'configure' and then 'wmake' in this directory.
    3. Copy CREOLE\build\creole.exe to CODIR\bin.
  3. EUDOC
    1. Unpack your new eudoc distribution into some directory EUDOC
    2. Run 'configure and then 'wmake' in this directory
    3. Copy EUDOC\build\eudoc.exe to CODIR\bin.
  4. WATCOM Binaries
    1. Use the Windows Command Prompt for these binaries
    2. Change directory to CODIR\source and run 'configure --eubin EUDIR\bin --align4 --noassert --final'. You may be use --use-binary-translator but you may need an already built translator of the exact same version of that in CODIR. Now, if you have spaces in the EUDIR, you must use tilde hacks. For example if you have EUPHORIA installed under "C:\Program Files" you will have to use "C:\PROGRA~1" or something similar for that portion of the path making up EUDIR.
    3. Run WATCOM 'wmake all' in CODIR\source to make new binaries
    4. Run WATCOM 'wmake tools' in CODIR\source to make more new binaries
  5. Documentation to do after WATCOM binaries are built.
    1. Run 'wmake htmldoc pdfdoc' to create the documentation.
  6. Quality Check
    1. Run 'wmake test' to ensure the tests work.
    2. Inspect the html documentation and PDF documentation. Search the HTML and PDF for the string 'BadSig' in a good text editor or grep. Use 'grep -R BadSig' in CODIR/source/build/html. If you find one, there is something wrong with the documentation formatting.
    3. Use grep to find lines with 'unresolved.html'. Use 'grep -R unresolved\.html' in CODIR/source/build/html to find them. If you find one, there is a broken link in the documentation.
  7. MingW Binaries
    1. Use MinGW Shell to configure again.
    2. Run './configure --align4 --final'
    3. Run 'make library debug-library' to create the MinGW library files
  8. Packaging
    1. Preferably with a GNU shell, Copy CODIR\source\build\*.{a,exe,lib} to CODIR\bin. Like this 'cp $CODIR/source/build/*.{a,lib,exe} $CODIR/bin'.
    2. Use upx to compress all of the binary files. Run 'upx *.exe' in the CODIR/bin directory.
    3. Make a pristine copy of the latest files according to your repository in CODIR/packaging/win32. Change directory to CODIR/packaging/win32. If cleanbranch doesn't yet exist, run 'hg clone ../.. cleanbranch'. If it does exist from a previous attempt, you can do '(cd cleanbranch; hg pull) '.
    4. Change to this cleanbranch directory.
    5. Get to the correct version use 'hg update -C version number or tag name '
    6. Use 'hg sta -u' and 'hg sta -i' to find any extra files that do not belong. If they are some, you will have to delete them.
    7. Use the Windows Prompt again
    8. Change back to the directory CODIR/packaging/win32
    9. Create euphoria-4.x.y.exe with './euphoria.iss' .
    10. Create euphoria-ow-4.x.y.exe with './euphoria-ow.iss' .

Package Testing

Windows

Create tickets as you see problems come up or write them in a document if you are testing offline. Look at the ChangeLog in CODIR\docs\release. The Change Log should tell you what has been fixed. Try these things out and make sure they really are fixed.

To really test this package you should:

  1. Uninstall your production EUPHORIA or use a computer that doesn't have it.
  2. Ensure that there are no stray environment variables, registry keys left laying around from the install. If they are please eliminate them.
  3. Install your package into the clean machine to an unconventional location try 'EUFORIA' or 'C:\YOU4EEAH' or paths with spaces 'C:\E U P H O R I A'. The EUPHORIA with WATCOM installer should refuse to allow you to install to a Path with spaces on account of WATCOM not working correctly with that configuration. The EUPHORIA only package will allow you to install and once installed Euphoria should run correctly when installed to a place with or without spaces.
  4. Use your start menu and open the items that are there. Make sure they open what they are supposed to.
  5. Use Explorer to run the demos. See how they react to your environment.
  6. Run some of your EUPHORIA programs and third party programs.
  7. Check the documentation:
    1. can you open the PDF documentation?
    2. can you open the local HTML documentation? Does the Javascript search Engine work?
      1. Can you search for 'find_all' and will it give you the two options? Does clicking on them take you to their definitions?
    3. Can you open the online documentation?
    4. Can you open the other online resources?
  8. Run the UNIT tests
  9. Uninstall. Check if there is anything left over from the install. Does it clean the environment or configuration files? Does it remove its Registry keys it created? Does it remove itself from the PATH? These are what a well behaving uninstaller should do.

Publishing

  1. You will have some sourceforge username, such as mat and a milestone name, like 4.0.6
  2. Use sftp
    • sftp sourceforge username,rapideuphoria@frs.sourceforge.net
    • cd /home/frs/project/rapideuphoria/Euphoria
    • mkdir milestone name
    • cd milestone name
    • put euphoria archive
    • quit
  3. Navigate to https://sourceforge.net/projects/rapideuphoria/files/Euphoria
  4. Open the folder called milestone name
  5. Check the md5sum on the package on the site. The package md5sum is shown when you click the 'i' icon.
  6. Check the md5sum of the package on your disk.
  7. If they don't match, please try again.

RPM

Courtesy of Michael Moore:

1.

% hg clone http://scm.openeuphoria.org/hg/euphoria  
That brings in the source for building, but to build you also need a working 64-bit OpenEuphoria binary for linux-the generic one will do.

2. So bring that in and untar it to a directory. put that directory in the --eubin=<directory_name> for access to the interpreter when you issue

    % ./configure --eubin=<directory_name>  # from inside the euphoria/source directory in the cloned repo. 

3.

% make 
Follows configure in the same place (time for coffee). When it finishes, error free we hope, you are ready to build the rpm

4. Most probably you do not have checkinstall. Most distros do not carry it. So

    %  git clone http://checkinstall.izto.org/checkinstall.git  # do this once for the ability to build Debs Slacks and RPMs 
    %  make # in the checkinstall directory 
    %  sudo make install #gets checkinstall installed  

With your favorite editor, make a one-line file in /etc/ld.so.conf.d/installwatch.conf with the contents "/usr/local/lib64" without quotes

    % sudo ldconfig 
    % sudo ln -s /usr/local/lib/installwatch.so /usr/local/lib64/installwatch.so 
    % sudo ln -s /usr/local/sbin/checkinstall /usr/sbin/checkinstall 
All of those steps keep LD_PRELOAD happy and 64/32 agnostic. That last prepares checkinstall for access by root-privileged accounts. 5. Back in the euphoria directory... where you did make
    % sudo checkinstall  #DO NOT build the doc directory or you will be using mkdir -p a lot 
Answer a few questions and you have an rpm in /root/rpmbuild/RPMS/x86_64/OpenEuphoria-4.1.0.b2.el7-1.x86_64.rpm
        % checkinstall  # also works though the location fo the rpm will be different.   
(In either case i is wise to prepare ahead of time for an rpmbuild directory tree. The easy way on RHEL 7 is to do this
sudo yum install rpmdevtools rpm-build 
rpmdev-setuptree 
That will save a lot of grief later.

6. Now after all of that, you do NOT have OpenEuphoria installed. But you do have an rpm for

    % sudo rpm -ivh OpenEuphoria-4.1.0.b2.el7-1.x86_64.rpm 
which will install it.

It should be possible to build a .spec file and do the full % rpm-build -ba but the dependency would be to have the generic 64-bit linux OpenEuphoria available as it depends on a working interpreter. The binary rpm does not have that dependency.

Search



Quick Links

User menu

Not signed in.

Misc Menu