Difference between revisions of "Preparing a release for distribution"

From WeBWorK_wiki
Jump to navigation Jump to search
(New page: Making WeBWorK tarballs is fun and easy! Anyone can do it! In this example, we'll make tarballs for the final 2.2 release, tag <code>rel-2-2-0</code>. '''Step 1:''' Update README to conta...)
 
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
  +
{{Historical}}
  +
  +
{{Deprecated | Use [[Github]] for version control.
  +
[https://github.com/openwebwork https://github.com/openwebwork]
  +
The SVN and source forge repositories are no longer being updated.
  +
}}
  +
  +
[https://github.com/openwebwork https://github.com/openwebwork]
  +
  +
  +
The most relevant repositories are
  +
  +
* webwork2
  +
* pg
  +
* webwork-open-problem-libraries
  +
  +
For installation see the ww_install repository or the "Docker for newbies" entry on the wiki
  +
attached to the webwork2 repository on github.
  +
  +
  +
  +
  +
 
Making WeBWorK tarballs is fun and easy! Anyone can do it! In this example, we'll make tarballs for the final 2.2 release, tag <code>rel-2-2-0</code>.
 
Making WeBWorK tarballs is fun and easy! Anyone can do it! In this example, we'll make tarballs for the final 2.2 release, tag <code>rel-2-2-0</code>.
   
 
'''Step 1:''' Update README to contain current release notes and LICENSE to reflect current version number. Make sure <code>lib/WeBWorK.pm</code> contains the correct versions number in <code>$main::VERSION</code>.
 
'''Step 1:''' Update README to contain current release notes and LICENSE to reflect current version number. Make sure <code>lib/WeBWorK.pm</code> contains the correct versions number in <code>$main::VERSION</code>.
   
For example: <code>wget -O- 'http://devel.webwork.rochester.edu/twiki/bin/view/Webwork/WeBWorKRelease2pt1pt3?skin=plain' || perl -pe '$/=undef;$_=&lt;&gt;;s||&lt;ul&gt;.*?&lt;/ul&gt;|||s' || lynx -dump -stdin > README.new</code>
+
For example: <code>wget -O- 'http://devel.webwork.rochester.edu/twiki/bin/view/Webwork/WeBWorKRelease2pt1pt3?skin=plain' | perl -pe '$/=undef;$_=&lt;&gt;;s|&lt;ul&gt;.*?&lt;/ul&gt;||s' | lynx -dump -stdin > README.new</code>
   
 
'''Step 2:''' Tag a point on the <code>rel-2-2-dev</code> branch as <code>rel-2-2-0</code>. Do this from within an up-to-date working directory on the <code>rel-2-2-dev</code> branch.
 
'''Step 2:''' Tag a point on the <code>rel-2-2-dev</code> branch as <code>rel-2-2-0</code>. Do this from within an up-to-date working directory on the <code>rel-2-2-dev</code> branch.
Line 10: Line 33:
 
( cd pg && cvs tag rel-2-2-0 )
 
( cd pg && cvs tag rel-2-2-0 )
   
Note: Steps 3-6 can be done with the mkdist script (in admintools). Edit before running to set the proper release tag.
+
Note: Steps 3-6 can be done with the mkdist script (in admintools). Edit before running to set the proper release tag. <code>perl mkdist 2.4.7</code> produces a rel-2-4-7 tarball with links to rel-2-4-patches updates.
   
 
'''Step 3:''' Check out the source for <code>rel-2-2-0</code> from anonymous CVS.
 
'''Step 3:''' Check out the source for <code>rel-2-2-0</code> from anonymous CVS.
Line 19: Line 42:
 
'''Step 4:''' Convert the Tag to <code>rel-2-2-dev</code> so that people can track bugfixes. This seems like the best choice, since if people want to stick with 2.2, they'll just not update, and if they want to get patches, they don't have to change the branch.
 
'''Step 4:''' Convert the Tag to <code>rel-2-2-dev</code> so that people can track bugfixes. This seems like the best choice, since if people want to stick with 2.2, they'll just not update, and if they want to get patches, they don't have to change the branch.
   
( cd webwork-2.2 && find . -regex '.*/CVS/\(Tag\||Entries\)' -print0 || xargs -0 perl -pi -e 's/rel-2-2-0$/rel-2-2-dev/' )
+
( cd webwork-2.2 && find . -regex '.*/CVS/\(Tag\|Entries\)' -print0 | xargs -0 perl -pi -e 's/rel-2-2-0$/rel-2-2-dev/' )
( cd pg-2.2 && find . -regex '.*/CVS/\(Tag\||Entries\)' -print0 || xargs -0 perl -pi -e 's/rel-2-2-0$/rel-2-2-dev/' )
+
( cd pg-2.2 && find . -regex '.*/CVS/\(Tag\|Entries\)' -print0 | xargs -0 perl -pi -e 's/rel-2-2-0$/rel-2-2-dev/' )
   
 
'''Step 5:''' Tar them up, and compress them as both GZip and BZip2 archives.
 
'''Step 5:''' Tar them up, and compress them as both GZip and BZip2 archives.
Line 31: Line 54:
 
'''Step 6:''' Give them to SourceForge:
 
'''Step 6:''' Give them to SourceForge:
 
http://sourceforge.net/project/admin/editpackages.php?group_id=93112
 
http://sourceforge.net/project/admin/editpackages.php?group_id=93112
  +
  +
My upload procedure (by hand) is more complex than the one suggested in mkdist
  +
  +
<pre>
  +
sftp myname@frs.sourceforge.net
  +
Connecting to frs.sourceforge.net...
  +
The authenticity of host 'frs.sourceforge.net (216.34.181.57)' can't be established.
  +
DSA key fingerprint is be:......
  +
Are you sure you want to continue connecting (yes/no)? yes
  +
Warning: Permanently added 'frs.sourceforge.net' (DSA) to the list of known hosts.
  +
myname@frs.sourceforge.net's password:
  +
sftp> cd /home/frs/project/o/op/openwebwork
  +
sftp> cd pg/2.4.7
  +
sftp> mput *.tar.*
  +
Uploading pg-2.4.7.tar.bz2 to /incoming/e/ea/eatongage/uploads/pg-2.4.7.tar.bz2
  +
pg-2.4.7.tar.bz2 100% 436KB 435.7KB/s 00:01
  +
Uploading pg-2.4.7.tar.gz to /incoming/e/ea/eatongage/uploads/pg-2.4.7.tar.gz
  +
pg-2.4.7.tar.gz 100% 529KB 528.9KB/s 00:01
  +
sftp> cd ../../webwork2/2.4.7
  +
Uploading webwork-2.4.7.tar.bz2 to /incoming/e/ea/eatongage/uploads/webwork-2.4.7.tar.bz2
  +
webwork-2.4.7.tar.bz2 100% 4559KB 1.1MB/s 00:04
  +
Uploading webwork-2.4.7.tar.gz to /incoming/e/ea/eatongage/uploads/webwork-2.4.7.tar.gz
  +
webwork-2.4.7.tar.gz 100% 4696KB 1.2MB/s 00:04
  +
sftp> exit
  +
</pre>
   
 
'''Step 7:''' Add the release to <code>/webwork/docs2html</code>:
 
'''Step 7:''' Add the release to <code>/webwork/docs2html</code>:
   
cvs -d /webwork/cvs/system checkout -r rel-2-2-0 -d webwork_rel-2-2-0 webwork2
+
cvs -d /webwork/cvs/system checkout -r rel-2-2-0 -d webwork2_rel-2-2-0 webwork2
 
cvs -d /webwork/cvs/system checkout -r rel-2-2-0 -d pg_rel-2-2-0 pg
 
cvs -d /webwork/cvs/system checkout -r rel-2-2-0 -d pg_rel-2-2-0 pg
   

Latest revision as of 15:00, 22 August 2018

This article has been retained as a historical document. It is not up-to-date and the formatting may be lacking. Use the information herein with caution.
This deprecated feature should no longer be used, but is still available for reasons of backwards compatibility.

This feature was deprecated in version Use Github for version control. https://github.com/openwebwork The SVN and source forge repositories are no longer being updated. . 9


https://github.com/openwebwork


The most relevant repositories are

  • webwork2
  • pg
  • webwork-open-problem-libraries

For installation see the ww_install repository or the "Docker for newbies" entry on the wiki attached to the webwork2 repository on github.



Making WeBWorK tarballs is fun and easy! Anyone can do it! In this example, we'll make tarballs for the final 2.2 release, tag rel-2-2-0.

Step 1: Update README to contain current release notes and LICENSE to reflect current version number. Make sure lib/WeBWorK.pm contains the correct versions number in $main::VERSION.

For example: wget -O- 'http://devel.webwork.rochester.edu/twiki/bin/view/Webwork/WeBWorKRelease2pt1pt3?skin=plain' | perl -pe '$/=undef;$_=<>;s|<ul>.*?</ul>||s' | lynx -dump -stdin > README.new

Step 2: Tag a point on the rel-2-2-dev branch as rel-2-2-0. Do this from within an up-to-date working directory on the rel-2-2-dev branch.

( cd webwork2 && cvs tag rel-2-2-0 )
( cd pg && cvs tag rel-2-2-0 )

Note: Steps 3-6 can be done with the mkdist script (in admintools). Edit before running to set the proper release tag. perl mkdist 2.4.7 produces a rel-2-4-7 tarball with links to rel-2-4-patches updates.

Step 3: Check out the source for rel-2-2-0 from anonymous CVS.

cvs -d :pserver:anoncvs@cvs.webwork.rochester.edu:/webwork/cvs/system checkout -r rel-2-2-0 -d webwork-2.2 webwork2
cvs -d :pserver:anoncvs@cvs.webwork.rochester.edu:/webwork/cvs/system checkout -r rel-2-2-0 -d pg-2.2 pg

Step 4: Convert the Tag to rel-2-2-dev so that people can track bugfixes. This seems like the best choice, since if people want to stick with 2.2, they'll just not update, and if they want to get patches, they don't have to change the branch.

( cd webwork-2.2 && find . -regex '.*/CVS/\(Tag\|Entries\)' -print0 | xargs -0 perl -pi -e 's/rel-2-2-0$/rel-2-2-dev/' )
( cd pg-2.2 && find . -regex '.*/CVS/\(Tag\|Entries\)' -print0 | xargs -0 perl -pi -e 's/rel-2-2-0$/rel-2-2-dev/' )

Step 5: Tar them up, and compress them as both GZip and BZip2 archives.

tar -czf webwork-2.2.tar.gz webwork-2.2
tar -cjf webwork-2.2.tar.bz2 webwork-2.2
tar -czf pg-2.2.tar.gz pg-2.2
tar -cjf pg-2.2.tar.bz2 pg-2.2

Step 6: Give them to SourceForge: http://sourceforge.net/project/admin/editpackages.php?group_id=93112

My upload procedure (by hand) is more complex than the one suggested in mkdist

sftp myname@frs.sourceforge.net
Connecting to frs.sourceforge.net...
The authenticity of host 'frs.sourceforge.net (216.34.181.57)' can't be established.
DSA key fingerprint is be:......
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'frs.sourceforge.net' (DSA) to the list of known hosts.
myname@frs.sourceforge.net's password: 
sftp> cd /home/frs/project/o/op/openwebwork
sftp> cd pg/2.4.7
sftp> mput *.tar.*  
Uploading pg-2.4.7.tar.bz2 to /incoming/e/ea/eatongage/uploads/pg-2.4.7.tar.bz2
pg-2.4.7.tar.bz2                                                                    100%  436KB 435.7KB/s   00:01    
Uploading pg-2.4.7.tar.gz to /incoming/e/ea/eatongage/uploads/pg-2.4.7.tar.gz
pg-2.4.7.tar.gz                                                                     100%  529KB 528.9KB/s   00:01 
sftp> cd ../../webwork2/2.4.7   
Uploading webwork-2.4.7.tar.bz2 to /incoming/e/ea/eatongage/uploads/webwork-2.4.7.tar.bz2
webwork-2.4.7.tar.bz2                                                               100% 4559KB   1.1MB/s   00:04    
Uploading webwork-2.4.7.tar.gz to /incoming/e/ea/eatongage/uploads/webwork-2.4.7.tar.gz
webwork-2.4.7.tar.gz                                                                100% 4696KB   1.2MB/s   00:04    
sftp> exit

Step 7: Add the release to /webwork/docs2html:

cvs -d /webwork/cvs/system checkout -r rel-2-2-0 -d webwork2_rel-2-2-0 webwork2
cvs -d /webwork/cvs/system checkout -r rel-2-2-0 -d pg_rel-2-2-0 pg