Index: contrib/tags/1.047/AUTHORS =================================================================== --- contrib/tags/1.047/AUTHORS (revision 0) +++ contrib/tags/1.047/AUTHORS (revision 1310) @@ -0,0 +1,9 @@ +The FastJet contrib is provided and maintained by + +Matteo Cacciari +Gavin P. Salam +Gregory Soyez + +Please contact: + fastjet@projects.hepforge.org +for questions queries and comments Index: contrib/tags/1.047/DEVEL-GUIDELINES =================================================================== --- contrib/tags/1.047/DEVEL-GUIDELINES (revision 0) +++ contrib/tags/1.047/DEVEL-GUIDELINES (revision 1310) @@ -0,0 +1,251 @@ +Guidelines for the FastJet Contrib area +--------------------------------------- + +The FastJet contrib area is intended for developers of FastJet-related +C++ tools, so as to provide easy access to their work in a common, +publicly accessible location. + +If you wish to add code to the fastjet-contrib repository, please +follow the guidelines indicated below, intended to give users a +reasonably uniform experience and to facilitate versioning and quality +control. + +For further information about making contributions, please contact +fastjet@projects.hepforge.org + +====================================================================== +Basic developer usage +===================== + + # to get started you will need a hepforge account. Go to + # + # https://www.hepforge.org/register + # + # to create it. + # + # Then you will need to set up access through an ssh key. Go to + # + # https://phab.hepforge.org/settings/user/USERNAME/page/ssh/ + # + # (replace USERNAME with your actual username), click on + # "SSH Key Actions" and select "Upload Public Key". + + # check out the overall contrib directory + svn checkout https://svn.hepforge.org/fastjetsvn/contrib/trunk fjcontrib + cd fjcontrib + + # get the existing contribs (optional, but useful) + scripts/update-contribs.sh + + # start your new contrib, choosing your own "ContribName" (*) + # Running this script produces a template for the new contrib + # in the form of a new ContribName/ subdirectory of fjcontrib, + # including a basic Makefile (further info below) + scripts/new-contrib-from-template.sh ContribName + + # once you have something worth committing, write to the fastjet contrib + # maintainers at to get write access to the + # fjcontrib svn. We will need your username. + + # and then run + scripts/register-new-contrib.sh ContribName + + # within your pre-existing ContribName/ directory you can now "svn + # add" your files, commit them etc. + + # you should probably also run "svn propset svn:keywords Id *.cc *.hh" + # so that their $Id$ tag automatically gets updated when you commit + + # when you're ready to make a versioned release, make sure that + # + # - all required files (AUTHORS, COPYING, NEWS etc.) are up to date + # - VERSION includes the version number for the release + # - "make check" and "make install" both work + # - everything is committed + # + # At this point the fjcontrib maintainers are usually happy to have a + # quick look through your code and provide comments based on + # experience with other contribs. + # + # Once you're ready to make a release, run + scripts/release-contrib.sh ContribName + + # send a mail to fastjet@projects.hepforge.org with a request for + # that version to be made public + + +(*) Note that if you have previously "registered" your contrib (i.e. +you have run "scripts/register-new-contrib.sh ContribName") you can get +it in a fresh checkout of the overall fjcontrib directory by running + + scripts/update-contribs.sh ContribName trunk + +Please refrain from developing other people's contribs without first +consulting them! + +Note: currently there is no mechanism for handling external +dependencies (ROOT, gsl, etc.), nor for handling dependencies between +different contribs. + +====================================================================== +Further details +=============== + +Each contribution is the responsibility of its authors. The FastJet +authors will not provide direct support. + +Each contribution must be in a directory of its own. The name of the +directory will also by default be used for the library component. + +Each contribution should be made available under the terms of the GNU +General Public License (v2 or later), or if the author wishes, under a +more permissive license that is compatible with the GNU GPL. + +Each contribution should include the following files (automatically +put in place when you run scripts/new-contrib-from-template.sh, see below): + + - COPYING: giving license information + + - AUTHORS: names of authors, including current email addresses + + - README: giving a basic explanation of the scope and usage of the + contrib and indication of which work should be cited by users of + your code. Please mention any external dependencies, e.g. ROOT, + GSL, Boost, etc. + + - at least one example program (e.g. example.cc) using the contrib + tool or plugin, together with a file containing the expected + output (example.ref). + + - VERSION: a version number, e.g. 1.0.x, which would be updated to + 2.0.x in the event of a major change. + + - NEWS: to indicate what has changed in each new version + + - ChangeLog: finer grained details of day-to-day changes + + +====================================================================== +Build system +============ + +Each contribution should include a Makefile. A reasonable default +is generated when you run scripts/new-contrib-from-template.sh + +A few variables appearing at the top of the Makefile may need to be +modified: + + - NAME + - SRCS + - EXAMPLES + - INSTALLED_HEADERS + +Additionally you will need to ensure that "make check" works. By +default it does the following: + + - builds the "example" program, + - runs it, reading ../data/single-event.dat from standard input + - compares the output to the "example.ref" file (after stripping + lines that started with "#") + +In most cases, to get "make check" to work, it is sufficient to +replace the template's example.ref file with the correct output from +your program. If you want to use a different input file, modify the +relevant line in the Makefile. + +You may also write your own Makefile (or adapt one from +scripts/internal/Template/Makefile ). In this case + + - It should prominently define a variable FASTJETCONFIG + near the beginning of the file. By default FASTJETCONFIG should be + set to fastjet-config, i.e. the contribution should build out of + the box if fastjet-config is in the user's path. + + - It should include the following targets + . all + . check + . install + . examples + . clean + . distclean + + +====================================================================== +Structure of the svn repository +=============================== + +The repository at + + svn+ssh://vcs@phab.hepforge.org/source/fastjetsvn/contrib/ (read-write) + https://phab.hepforge.org/source/fastjetsvn/browse/contrib/ (browse) + +is organised as follows: + + # area for the overall fastjet-contrib scripts and information about + # currently used version of individual contribs. Currently only + # maintainers of the overall fjcontrib area have write acces + # + trunk/ # development version + tags/ # official releases + branches/ # branches + + # areas for individual contribs. Developers each have access + # to all contribs by default (for simplicity) + contribs/ContribName/trunk # development version + contribs/ContribName/tags # official releases + contribs/ContribName/branches # branches + +Within the main fastjet contrib directory, the file "contribs.svn" +file indicates which contribs (and their version) are to be extracted +by scripts/update-contribs.sh + + +====================================================================== +Guidelines for reviewing contribs +================================= + +[This part of the guidelines is in the process of being drafted] + +- Does the contrib do something non-trivial? I.e. does it do something + that cannot already be easily done with a few lines of FJ code? + +- Is the contrib well documented? All classes, constructors, member + functions, etc., that are exposed to the user should have an + instructive comment about what they do (or be so well named that a + comment is redundant). + +- Does the example(s) demonstrate all the main features of the code? + +- Does the example indicate what command-line should be used to run + it? + +- Does the contrib make sensible use of existing FastJet features and, + where relevant, does its interface follow the pattern of standard + FJ3 interfaces? (E.g. with FunctionOfPseudoJet, Selectors, + etc.). Conforming with existing interfaces helps give users a + uniform experience. + +- Are namings logical and similar to those in FastJet: e.g. if the + contrib is simply a plugin, the class name should end in "Plugin" + and the contrib name should probably be the same as the class name. + +- Are the tests carried out as part of make check reasonably + exhaustive? Are the contents of the reference results file + sufficient to have a reasonable chance of spotting future changes? + (E.g. a single bool as the output has a 50% chance of coming out + right even if the code is misbehaving). + +- If you run the example with valgrind, does it run free of errors and + memory leaks? We've found that valgrind tests are often better + carried out on linux machines than on macs. + +- Does "make fragile-shared" work? Some people rely on it. + +- Are the README, AUTHORS, NEWS and ChangeLog files sensible? Are line + lengths suitable for web viewing (e.g. no more than 80 characters + per line). + +- Are the $Id$ tags set correctly in the files? You can set them by + doing the following in your directory + + svn propset svn:keywords Id *.cc *.hh Index: contrib/tags/1.047/VERSION =================================================================== --- contrib/tags/1.047/VERSION (revision 0) +++ contrib/tags/1.047/VERSION (revision 1310) @@ -0,0 +1 @@ +1.047 Index: contrib/tags/1.047/ChangeLog =================================================================== --- contrib/tags/1.047/ChangeLog (revision 0) +++ contrib/tags/1.047/ChangeLog (revision 1310) @@ -0,0 +1,1060 @@ +2021-12-06 Gavin Salam + + * VERSION: + * NEWS: + * contribs.svn: + updated LundPlane to 2.0.1 and prepared for release of + fjcontrib-1.047 + + * configure: + * scripts/c11check/Makefile: + * scripts/c11check/c11check.cc: + added facilities for checking if we have c++11 + support and adding it in if need be + +2021-08-21 Sat + + * NEWS: + * VERSION: + * contribs.svn: + updated RecursiveTools to 2.0.1 and prepared for release + of fjcontrib-1.046 + +2020-08-04 Tue + + * NEWS: + * VERSION: + Preparing for release of 1.045 + + * contribs.svn: + added Centauro (DIS jet algorithm plugin) 1.0.0 + +2020-03-07 Gavin Salam + + * VERSION: + * NEWS: + Preparing for release of 1.044 + + * contribs.svn: + updated RecursiveTools to 2.0.0 + +2020-02-23 Gavin Salam + + * NEWS: + * VERSION: + preparing for release of 1.043 + + * README: + added note about need for c++11 here if FJ was compiled with + c++11. + + * contribs.svn: + updated ConstituentSubtractor to 1.4.5 and LundPlane to 1.0.3 to + fix c++98 compatibility issues + +2019-07-18 Gavin Salam + + * NEWS: + * VERSION: + * contribs.svn: + ConstituentSubtractor updated to 1.4.4, + prepared release of fjcontrib-1.042 + +2018-12-22 Gavin Salam + + * VERSION: + * NEWS: + * contribs.svn: + updated ValenciaPlugin to 2.0.2 with bug fixes for negative beta. + Prepared for release of fjcontrib-1.041 + +2018-12-04 Gavin Salam + + * DEVEL-GUIDELINES: + * scripts/internal/common.sh (svn_read): + * README: + updated links for read-only access. + +2018-12-04 Gavin Salam + + * NEWS: + * VERSION: + prepared for release of 1.040 with ValenciaPlugin 2.0.1 + + * contribs.svn: + updated ValenciaPlugin to 2.0.1 + +2018-10-31 Gavin Salam + + * scripts/internal/generate-html-contents.pl: + * scripts/internal/common.sh: + + fixed issue with incorrect links generate-html-contents.pl and + made it import svn_read address from environment variables set in + common.sh + +2018-10-31 Gavin Salam + + * NEWS: + * VERSION: + preparing for 1.039 release with LundPlane 1.0.2 + +2018-10-30 Gavin Salam + + * contribs.svn: + updated LundPlane to 1.0.2 + +2018-10-25 Gavin Salam + + * DEVEL-GUIDELINES + * README + * scripts/internal/common.sh + * scripts/internal/check-updates.sh + * scripts/internal/generate-html-contents.pl + * scripts/internal/release-fjcontrib.sh + work in progress to move things over to the new hepforge system. + +2018-08-30 Gavin Salam + + * VERSION: + * NEWS: + prepared release of 1.038 with LundPlane 1.0.1 + + * contribs.svn: + added LundPlane version 1.0.1 + +2018-08-23 Gavin Salam + Matteo + + * scripts/internal/get-author-emails.py: + added script to extract all author emails + +2018-08-23 Gavin Salam + + * scripts/update-contribs.sh: + documented the --force option in the help message + +2018-07-20 Gavin Salam + + * VERSION: + * NEWS: + * contribs.svn: + prepared release of 1.037 with ConstituentSubtractor updated to 1.3.1 + +2018-06-06 Gavin Salam + + * VERSION: + * NEWS: + prepared release of 1.036. + + * contribs.svn: + updated Nsubjettiness to 2.2.5, with fix for bug involving + undefined pointer for in AxesDefinition + +2018-05-29 Gavin Salam + + * VERSION: + * NEWS: + prepared for the release of 1.035 + + * contribs.svn: + updated RecursiveTools to 2.0.0-beta2 with bug fix for recent + clang compilers. + +2018-05-28 Gavin Salam + + * contribs.svn: + updated ConstituentSubtractor to 1.2.7 (extra features, clearer examples) + +2018-05-18 Gregory Soyez + + * VERSION: + * NEWS: + prepared for the release of 1.034 + + * contribs.svn: + upped ConstituentSubtractor to 1.2.5 (fixing a bug) + + * scripts/internal/Template/Makefile + added CXXFLAGS to the compilation of the examples + +2018-02-15 Gregory Soyez + + * VERSION: + * NEWS: + prepared for the release of 1.033 + + * contribs.svn: + upped EnergyCorrelator to 1.3.1 (fixing a memory leak) + +2018-01-17 Gavin Salam + + * NEWS: + * VERSION: + prepared for release of 1.032 + + * contribs.svn: + updated EnergyCorrelator to 1.3.0 + +2017-12-20 Gavin Salam + + * VERSION: + * NEWS: + upped version to 1.031 & prepared NEWS for release + + * contribs.svn: + upped ConstituentSubtractor to 1.2.4 + +2017-11-13 Gavin Salam + + * configure: + included patch from attila.krasznahorkay@cern.ch for issue with + macOS sed. + +2017-10-13 Gregory Soyez + + * VERSION: + * NEWS: + preapred to release v1.030 + + * contribs.svn: + switched to v2.0.0-beta1 of RecursiveTools + +2017-09-10 Gavin Salam + + + * VERSION: + * NEWS: + prepared release 1.029 + + * contribs.svn: + added FlavorCone tags/1.0.0 + updated ConstituentSubtractor to 1.2.3 + + * scripts/release-contrib.sh: + changed error and usage messages to reflect correct script name. + +2017-08-30 Gregory Soyez + + * NEWS: + * VERSION: + switched to version 1.028 in view of release and updated NEWS + accordingly. + + * contribs.svn: + switched ConstituentSubtractor to 1.2.2 [added back an + erronously-renamed function] + +2017-08-10 Gavin Salam + + * NEWS: + * VERSION: + switched to version 1.027 in view of release and updated NEWS + accordingly. + + * contribs.svn: + updated ConstituentSubtractor to v1.2.1, which includes changes to + the treatment of massive particles and speed improvements for + whole-event subtraction. + +2017-01-25 Gavin Salam + + * NEWS: + * VERSION: + switched to version 1.026 in view of release and updated NEWS + accordingly. + + * contribs.svn: + updated ConstituentSubtractor to v1.1.5, which includes new pileup + subtraction options and rho-rescaling. + +2016-10-07 Gavin Salam + + * NEWS: + * VERSION: + Switched version to 1.025 in view of a release; updated NEWS + accordingly. + + * contribs.svn: + switched EnergyCorrelator to version 1.2.0 + +2016-06-21 Gregory Soyez + + * VERSION: + * NEWS: + Switched version number over to 1.024 (in view of a release) + Updated the release notes + + * contribs.svn: + switched to Nsubjettiness 2.2.4 + +2016-06-01 Gregory Soyez + + * contribs.svn: + switched VariableR over to v1.2.1 + +2016-04-28 Gregory Soyez + + * VERSION: + * NEWS: + Switched version number over to 1.023 (in view of a release) + Updated the release notes + + * contribs.svn: + switched to Nsubjettiness 2.2.3 + +2016-03-31 Gregory Soyez + + * VERSION: + set version number to 1.022 prior to the release + +2016-03-30 Gavin Salam + + * utils/check.sh (DIFF): + provided more output in cases where the check fails. + + * NEWS: + minor tweak to NEWS + +2016-03-30 Gregory Soyez + + * NEWS: + drafted for the release of fjcontrib-1.022 + + * contribs.svn: + switched GenericSubtractor over to version 1.3.1 + +2016-03-29 Gregory Soyez + + * contribs.svn: + switched VariableR over to 1.2.0 and Nsubjettiness to 2.2.2 + +2016-03-10 Gregory Soyez + + * scripts/internal/check-updates.sh: *** ADDED *** + added an internal script that checks if the list in contribs.svn + is up-to-date + +2016-03-09 Gregory Soyez + + * contribs.svn: + switched ConstituentSubtractor over to version 1.1.1 + +2015-10-12 Gregory Soyez + + * NEWS: + * VERSION: + prepared for release 1.021 including QCDAwarePlugin 1.0.0 + + * contribs.svn: + added QCDAwarePlugin to the list of included contribs + +2015-10-05 Matteo Cacciari + + * scripts/internal/release-fjcontrib.sh + fixed harmless typo + +2015-10-05 Matteo Cacciari + + * Makefile.in + install permissions of libfastjetcontribfragile.so switched + from 0644 to 0755 (reported by Dario Berzano). + This will go into 1.020 + * NEWS + mentioned item above + +2015-10-04 Matteo Cacciari + + * NEWS: + * VERSION: + prepared for release 1.020 with Nsubjettiness 2.2.1 + +2015-10-04 Gavin Salam + + * DEVEL-GUIDELINES: + mentioned the need to check that "make fragile-shared" works. + + * scripts/internal/release-fjcontrib.sh: + added a check that "make fragile-shared" works. + +2015-09-28 Gregory Soyez + + * contribs.svn: + switched to version 2.2.1 of Nsubjettiness [minor bug in Makefile] + +2015-09-24 Matteo Cacciari + + * scripts/internal/generate-html-contents.pl + set up to extract from svn date of tag of last version and + output it in the table with the list of contribs + +2015-09-21 Gregory Soyez + + * NEWS: + * VERSION: + prepared for release 1.019 GenericSubtractor 1.3.0 + + * contribs.svn: + switched GenericSubtractor to version 1.3.0 + +2015-09-07 Gregory Soyez + + * NEWS: + * VERSION: + prepared for release 1.018 with Nsubjettiness 2.2.0 + +2015-07-23 Gregory Soyez + + * data/single-ee-event.dat: *** ADDED *** + added a simple e+e- event for tests in e+e- coordinates + +2015-05-05 Gavin Salam + + * NEWS: + * VERSION: + prepared NEWS and VERSION files for release 1.017 with + ClusteringVetoPlugin 1.0.0 + +2015-05-04 Gavin Salam + + * contribs.svn: + added ClusteringVetoPlugin 1.0.0 + +2015-04-07 Gavin Salam + + * VERSION: + * NEWS: + updated version to 1.016 and mentioned ValenciaPlugin 2.0.0 in NEWS + + * contribs.svn: + added ValenciaPlugin (tags/2.0.0) + +2015-02-20 Gavin Salam + Matteo + + * DEVEL-GUIDELINES: + mentioned that people should set svn:keywords to Id on relevant + files. + + * scripts/internal/Template/example.cc + modified template example header to include a line showing + how to run the example. + +2014-11-25 Gavin Salam + + * NEWS: + * VERSION: + updated version 1.015 and prepared NEWS + + * contribs.svn: + updated EnergyCorrelator to version 1.1.0 + +2014-08-17 Gavin Salam + + * NEWS: + * VERSION: + updated version to 1.014 and prepared NEWS + + * contribs.svn: + added SoftKiller 1.0.0 + +2014-08-16 Gavin Salam + + * contribs.svn: + updated JetCleanser version to tags/1.0.1 + +2014-07-09 Gregory Soyez + + * VERSION: + * NEWS: + updated version to 1.013 and prepared NEWS for release. + + * contribs.svn: + . updated Nsubjettiness to version 2.1.0 + . added release 1.0.0 of the new RecursiveTools contrib by + G. Salam, G. Soyez and J. Thaler + +2014-06-12 Gregory Soyez + + * configure (sorted_built_contribs): + slightly enlarged the space for printing contribs summary + +2014-06-03 Gavin Salam + + * VERSION: + * NEWS: + updated version to 1.012 and prepared NEWS for release. + + * contribs.svn: + updated VariableR to version 1.1.1 + +2014-04-06 Gavin Salam + + * VERSION: + * NEWS: + upped version to 1.011 for new contrib with ConstituentSubtractor + and prepared NEWS for the release. + + * contribs.svn: + added release 1.0.0 of the new ConstituentSubtractor by Peter + Berta et al. + +2014-04-02 Gavin Salam + + * DEVEL-GUIDELINES: + added details of how to set svn:keywords on source files. + +2014-03-14 Gavin Salam + + * Makefile.in (distclean): + distclean depended on CMS-shared-distclean when it should have + been fragile-shared-distclean. + +2014-03-01 Matteo Cacciari + + * scripts/internal/generate-html-contents.pl + added (and set) option to list the contribs alphabetically. + Also added (but not activated) option to include the date using the + time stamp of the svn tag + +2014-02-26 Matteo Cacciari + + * NEWS: + * VERSION: + upped version to 1.010 for release with new contrib JetsWithoutJets + and added release date to NEWS. + + * contribs.svn + added JetsWithoutJets v1.0.0 + + * configure + - added a blank line in output to config.log + - enabled alphabetically ordered output of enabled contribs + +2014-02-03 Gavin Salam + + * NEWS: + * VERSION: + upped version to 1.009 for release and added release date to NEWS. + +2014-01-31 Gavin SALAM + Gregory + Matteo + + * configure: + * Makefile.in: + added targets fragile-shared fragile-shared-install and fragile-shared-distclean; + the fragile-shared(-install) builds (installs) a + libfastjetcontribfragile.so file. This is currently very fragile, in + that it relies on just the SRCS formatting in the individual + contrib makefiles (all sources on a single line, without wildcards). + +2014-01-20 Gavin Salam + + * Makefile.in: + * utils/check.sh: + + arranged for make check to exit with error on failure from within + subdirectories, but to exit OK on failure when called from the + main directory (previous behaviour was to always exit OK). + + Removed redundant "exit 1" from the check.sh code (exit always + handled by print_status_and_exit(...)). + + Also, when called directly from a subdirectory, make check no + longer records its output in the test_summary.tmp file, and it now + prints a colour-coded success/failure message. + +2013-10-24 Gregory Soyez + + * scripts/internal/switch-to-version.sh: + updated to add support for branches + + * scripts/update-contribs.sh (script_new_version): + fixed an issue with checking out versions containing a '-' [the + regular expression matching pattern was consifering these as + "to-be-skipped"] + +2013-10-21 Gavin Salam + + * DEVEL-GUIDELINES: + added some first thoughts on guidelines for reviewing + +2013-09-24 Matteo Cacciari + + * VERSION: + * NEWS: + released fjcontrib 1.008 with new contrib JetCleanser 1.0.0 + + * contribs.svn: + added JetCleanser 1.0.0 + +2013-09-22 Matteo Cacciari + + * data/Pythia-Zp2jets-lhc-pileup-1ev.dat + replaced with new file including also particle ID and charge. + The events remain the same (up to, sometimes, differences in + the last digit), the "make check" still work without changing + the old reference files + +2013-09-22 Matteo Cacciari + + * utils/check.sh + added a safety check to verify if tput is present on the system + before using it to set colors + +2013-09-19 Matteo Cacciari + + * utils/check.sh + added colors to Success/Failed output from "make check" + + * scripts/internal/generate-html-contents.pl + a flag can now be set to get an alphabetically ordered + output (currently set to false, i.e. same output as before) + +2013-09-19 Gregory Soyez + + * Makefile.in: + * utils/check.sh: + instead of having "make check" exit with an error whenever a test + fails, let it keep going and print a summary of what has failed + and succeded at the end of everything + +2013-09-03 Matteo Cacciari + + * contribs.svn: + switched SubjetCounting to version 1.0.1 + + * NEWS: + released fjcontrib 1.007 with new contrib SubjetCounting 1.0.1 + and bugfix for exclusion and inclusion of more than one contrib + +2013-09-03 Matteo Cacciari + + * VERSION: + * NEWS: + released fjcontrib 1.007 with new contrib SubjetCounting 1.0.0 + and bugfix for exclusion and inclusion of more than one contrib + (not actually released as a tarball, see entry above) + + * contribs.svn: + added SubjetCounting 1.0.0 + +2013-08-28 Matteo Cacciari + + * configure + fixed two bugs that were preventing specifying more than + one contrib with the --only and --exclude options. The issues + were a spurious "/" appearing in the replacement of commas with + blanks in the contribs list, and a non-escaped command-line + passed through sed when writing out the Makefile. + +2013-08-27 Gregory Soyez + + * VERSION: + * NEWS: + released fjcontrib 1.006 including Nsubjettiness 1.0.3 + + * contribs.svn: + switched NSubjetiness to version 1.0.3 + +2013-08-13 Gavin Salam + + * configure: + identification of svn info fixed to work also with svn 1.8 (that + version prints an absolute and relative URL, and configure was + picking up both; now it picks up just the absolute URL). + + * scripts/internal/release-fjcontrib.sh: + hopefully fixed bug where tagging comment didn't have version + number (but '$version') + +2013-07-24 Gavin Salam + + * DEVEL-GUIDELINES: + mentioned that authors can ask for input from fjcontrib + maintainers before making a release + +2013-06-04 Gavin Salam + + * configure: + improved error message when fastjet-config not found + +2013-06-04 Gavin Salam + + * NEWS: + * VERSION: + released version 1.005, which adds ScJet 1.1.0 + +2013-06-03 Gavin Salam + + * contribs.svn: + added ScJet 1.1.0 from Jeff Tseng + +2013-05-28 Gavin Salam + + * NEWS: + * VERSION: + release of version 1.004 + + * contribs.svn: + switched GenericSubtractor to version 1.2.0 + +2013-05-22 Gavin Salam + + * configure: + for contribs obtained through an svn checkout (e.g. for + developers), it now supplements version info from the + ContribName/VERSION file with info about the svn location. + +2013-05-07 Matteo Cacciari + + * scripts/internal/common.sh: + further replacement [ \t] -> [[:space:]] for the fix + mentioned below, since the first one fails to recognize tabs + (only blanks worked) + +2013-05-01 Gavin Salam + + * NEWS: + * VERSION: + release of 1.003 + + * contribs.svn: + changed version of EnergyCorrelator to 1.0.1 + + * scripts/internal/common.sh: + implemented suggested fix by J. Thaler for issue of + already-checked out contribs not being recognized on some + systems. + +2013-04-30 Gavin Salam + + * contribs.svn: + put in EnergyCorrelator 1.0.0 + +2013-04-29 Gregory Soyez + Matteo + + * scripts/update-contribs.sh: + reworded comments at the top of the script to reflect the changes + made with 'contribs.local' + +2013-04-28 Matteo Cacciari + Gregory + + * scripts/update-contribs.sh + * scripts/internal/common.sh + * contribs.svn + replaced contribs.local with local_svn to avoid confusion with + the name of the file that will eventually be used to contain + local modifications to contribs.svn. + Fixed a regular expression in grep (allowing for mixture of spaces + and tabs before the contrib name) + Also reworded some comments. + + Added support for a contribs.local overriding default entries in + contribs.svn. Added option to skip processing of a specific + contribution by scripts/update-contribs.sh, by replacing version + number with any number of dashes. + +2013-04-27 Matteo Cacciari + + * utils/check.sh + Fixed a few typos in comments + +2013-04-12 Gregory Soyez + + * NEWS: + * VERSION: + prepared for 1.002 release + + * contribs.svn: + GenericSubtractor switched to version 1.1.0 (was 1.0.0) + +2013-02-23 Gavin Salam + + * NEWS: + * VERSION: + prepared for 1.001 release + + * contribs.svn: + added VariableR 1.0.1 and Nsubjettiness 1.0.2 (from Jesse Thaler) + + * configure: + now outputs version of each contrib (+ other small formatting) + + * Makefile.in: + distclean now removes Makefile and .Makefile.inc + +2013-02-22 Gavin Salam + + * utils/check.sh: + now prints out the directory that it's running in + +2013-02-21 Matteo Cacciari + + * DEVEL-GUIDELINES: + Rephrased sentence about registering a new contrib and the note + note about retrieving a registered contrib using + scripts/update-contribs.sh ContribName trunk" + + +2013-02-21 Gregory Soyez + + * scripts/internal/Template/Makefile: + added missing ; in make install + +2013-02-21 Gavin Salam + + * DEVEL-GUIDELINES: + added info on use of htpasswd to send us a password + + * scripts/internal/common.sh (svn_write): + switched write URL from svn+ssh -> https + +2013-02-21 Gavin Salam + + * README: + fixed type for http checkout + +2013-02-07 Matteo Cacciari + + * VERSION + Pushed version to 1.000 for release + + * contribs.svn + set version numbers to 1.0.0 for both GenericSubtractor and + JetFFMoments + +2013-02-06 Gavin SALAM + Matteo + + * scripts/internal/release-fjcontrib.sh: + a few fixes wrt paths for the tarball, info on release date, + parallel make, etc. + +2013-02-06 Gavin SALAM + Matteo + + * scripts/update-contribs.sh: + now does "exit 1" if it couldn't find a given contrib version on + the svn. + + * scripts/internal/release-fjcontrib.sh: + now allows user to carry on even if there are local modifications, + but with a warning. + + * scripts/update-contribs.sh: + tried to make sure that failure of switch-to-contrib results in + failure of update-contribs too (important e.g. for release script) + + * configure (makefileinc): + the .Makefile.inc file now has variables to override the install + and check scripts (intended to help possible future changes + + standalone functionality). + + * scripts/internal/check.sh -> utils/check.sh + * scripts/internal/install-sh -> utils/install-sh + moved these into a separate directory so that in the tarball we + include utils, but can completely discard scripts/ + + * scripts/internal/Template/Makefile: + this has been updated to use scripts in utils/* + + * scripts/internal/generate-html-contents.pl: + now includes a link to the directory for the contrib + + * configure: + fixed bug in output of prefix to .Makefile.inc (wasn't being + output when it was derived from fastjet-config). + + * contribs.svn: + JetFFMoments -> tags/0.99.1 + + * scripts/internal/release-fjcontrib.sh : + fixed typo in checking of existing version; before asking about a + release it now lists the contrib versions. + + * VERSION + upped to 0.001 for more testing + +2013-02-01 Gavin Salam + + * contribs.svn: + GenericSubtractor -> 0.99.1 + JetFFMoments -> 0.99 + + * configure: + * Makefile.in: + * scripts/internal/Template/Makefile: + variables are now communicated to sub-directory Makefiles via a + .Makefile.inc; trunks of JetFFMoments and GenericSubtractor also + modified. + + * scripts/internal/release-fjcontrib.sh: + contents now lives in a separate directory + + * scripts/update-contribs.sh: + no longer query if the contrib isn't yet there. + +2013-02-01 Gregory Soyez + + * scripts/internal/package.sh: (well... mostly Matteo) + added a simple script to package a tarball + +2013-01-31 Gregory Soyez + + * scripts/internal/release-fjcontrib.sh: + . removed unneeded developer and svn-users files from the + tarball + . fixed a few typos and trivial bugs + . check which fastjet-config to use when running tests + . the script now upload the tarball and the relevant info for + the webpage update + + * scripts/internal/generate-html-contents.pl: + played with CSS styles so as to get a result that looks rather + close to what is on the FastJet tools page + + * scripts/internal/common.sh: + * scripts/update-contribs.sh: + passed the default answer to get_yesno_answer as an argument + rather than a pre-defined variable + + * scripts/internal/release-fjcontrib.sh: + added a script to release fj-contrib + it includes all the contrib in contribs.svn + + * configure: + * README: + used --fastjet-config=... rather than --fjconfig=... to specify + the 'fastjet-config' file to use + + * scripts/update-contribs.sh: + * scripts/internal/common.sh: + allowed to run + update-contribs.sh --force + which will answer yes to all "yesno" questions asked + + * VERSION: *** ADDED *** + added a VERSION file + + * scripts/internal/switch-to-version.sh: + * scripts/register-new-contrib.sh: + * scripts/new-contrib-from-template.sh: + * scripts/release-contrib.sh: + removed potential trailing / + + +2013-01-31 Gavin Salam + Gregory + + * DEVEL-GUIDELINES: *** ADDED *** + * README + tried to make these a little more compact. + +2013-01-31 Gregory Soyez + + * scripts/make-release.sh -> scripts/release-contrib.sh: + renamed for more consistency + + * scripts/internal/switch-to-version.sh: + if the version starts with a digit, prefix it by "tags/" + + * scripts/internal/install-sh: + added a script for installing files + + * scripts/make-release.sh: + checked the full list of mandatory files when making a release + +2013-01-31 Gavin Salam + + * scripts/update-contribs.sh: + added -h option to update-contribs.sh + +2013-01-31 Gregory Soyez + + * scripts/update-contribs.sh: + if the svn up updated the update-contribs.sh script, re-run with + the new version + + * AUTHORS: *** ADDED *** + * COPYING: *** ADDED *** + * scripts.internal/Template/COPYING: + put this under GPLv2 and added the list of people maintaining the + FastJet-contrib + + * README: + mentioned new-contrib-from-template.sh instead of + new-contrib-template.sh + + * scripts/internal/check.sh: + checked that the expected output contains more than comments and + empty lines + +2013-01-31 Gavin SALAM + Matteo + Gregory + + * scripts/internal/Template/example.ref *** ADDED *** + added a template reference output file for make check with + instruction on what to do with it. + + * scripts/new-contrib-template.sh -> scripts/new-contrib-from-template.sh + a more meaningful name. + +2013-01-31 Gregory Soyez + + * scripts/internal/check.sh: + default extension for expected output set to "ref" + + * scripts/internal/Template/example.cc: + added missing header + + * scripts/internal/Template/Makefile + * scripts/internal/check.sh: + fixed some bash typos + + * scripts/switch-to-version.sh: *** DELETED *** + * scripts/internal/switch-to-version.sh: *** ADDED *** + * scripts/update-contribs.sh: + moved switch-to version in internal/ + + * scripts/new-contrib-template.sh: *** ADDED *** + * scripts/internal/Template: *** ADDED *** + added a template to create a new contrib and is associated script + + * scripts/TODO: + updated to reflect altest changes + +2013-01-30 Gregory Soyez + + * scripts/switch-to-version.sh: + * scripts/update-contribs.sh: + if the versions agree, still run svn up + + * scripts/internal/common.sh: + make sure the full contrib name is specified + + * scripts/update-contribs.sh: + when updating a specified contrib, ask for confirmation + + * scripts/switch-to-version.sh: + - use svn switch --relocate since svn relocate is not available + with old svn version + - give a write access when checking out the trunk + + * scripts/make-release.sh: + gave access to check_pending_modifications + + * data/ *** ADDED *** + added common event files for make check purpose + + * configure: *** ADDED *** + * Makefile.in: *** ADDED *** + added basic building mechanism + + * scripts/update-contribs.sh: + allowed to run it with a contrib name and optional version + This is then equivalent to calling switch-to-version.sh + + * scripts/update-contribs.sh: + added "Template" to the list of ignored directories + + * scripts/* *** ADDED *** + * README *** ADDED *** + added a list of maintenance scripts (see README for details) + + * contribs.svn *** ADDED *** + added an (empty) list of supported contribs + Index: contrib/tags/1.047/scripts/internal/get-author-emails.py =================================================================== --- contrib/tags/1.047/scripts/internal/get-author-emails.py (revision 0) +++ contrib/tags/1.047/scripts/internal/get-author-emails.py (revision 1310) @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 +import glob +import re + +# first identify all AUTHORS files +AuthorFiles = glob.glob("*/AUTHORS") + +print ("Identified {} contribs with AUTHORS files\n".format(len(AuthorFiles))) + +# create an initial empty set for emails +emails = set() + +# populate it +for file in AuthorFiles: + with open(file,'r') as f: + for line in f: + line = line.strip() + # pull out all email addresses + element = r'[^@ <>(),:]+' + m = re.findall('('+element+'@'+element+')',line) + for email in m: + email = re.sub(r'\.$','',email) + emails.add(email) + +# print them in a format that we can easily check +print("\n".join(emails),"\n") + +# print them in a format that works for a mail program... +print(",".join(emails)) Property changes on: contrib/tags/1.047/scripts/internal/get-author-emails.py ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: contrib/tags/1.047/scripts/internal/common.sh =================================================================== --- contrib/tags/1.047/scripts/internal/common.sh (revision 0) +++ contrib/tags/1.047/scripts/internal/common.sh (revision 1310) @@ -0,0 +1,119 @@ +# a list of definitions and tools that we'd like to ave an easy access +# to + +# svn repositories for read and write access +#svn_read=http://fastjet.hepforge.org/svn/contrib +#svn_write=https://fastjet.hepforge.org/svn/contrib +#svn_write=svn+ssh://svn.hepforge.org/hepforge/svn/fastjet/contrib +#fastjet_web_dir=~fastjet/public_html +#svn_read=svn+ssh://vcs@phab.hepforge.org/source/fastjetsvn/contrib +svn_read=https://svn.hepforge.org/fastjetsvn/contrib +svn_write=svn+ssh://vcs@phab.hepforge.org/source/fastjetsvn/contrib +fastjet_web_dir=/hepforge/projects/fastjet/public_html + +export svn_read svn_write fastjet_web_dir + +# get the svn URL and fill +# - mode : ro if http:// access; rw otherwise +# - version : the version info +# [None] is returned if the directory does not exist +# [NoSVN] is returned if the directory is not under svn +# +# get_svn_info contrib mode version +function get_svn_info(){ + local __modevar=$2 + local __versionvar=$3 + + # check if the directory exists + if [[ ! -d $1 ]]; then + eval $__modevar="[None]" + eval $__versionvar="[None]" + return 0 + fi + + cd $1 + + # check if this is in svn + svn info > /dev/null 2>&1 || { + eval $__modevar="[NoSVN]" + eval $__versionvar="[NoSVN]" + cd .. + return 0 + } + + # get the full URL + svn_url=$(svn info | grep "^URL:" | sed 's/^URL: //') + eval $__versionvar="${svn_url#*/$1/}" + + if [[ "$svn_url" == "http:"* ]]; then + eval $__modevar="ro" + else + eval $__modevar="rw" + fi + + cd .. + return 0 +} + +# get an entry from a contrib file, filling the "version" variable +# vwith the version number +# +# get_contrib_version contrib_name file version +function get_contrib_version(){ + local __resultvar=$3 + + # nasty hack: if the name of the "file" is "local_svn", + # get the version number from the local svn checkout of the contribution + if [[ "$2" == "local_svn" ]]; then + get_svn_info $1 mode version + eval $__resultvar="$version" + return 0 + fi + + # now deal with the version number as if it was an entry in "file" $2 + if [[ -e $2 ]]; then # check if the file actually exists +# entry=$(grep "^[ \t]*$1[ \t]" $2) # does not seem to work with tabs + entry=$(grep "^[[:space:]]*$1[[:space:]]" $2) + if [ -z "$entry" ]; then + eval $__resultvar="[None]" + else + eval $__resultvar="`echo $entry | awk '{print $2}'`" + fi + else # file does not exist + eval $__resultvar="[None]" + fi +} + +# get a yes/no answer +# returns 0 for n/N/no +# 1 for y/Y/yes +function get_yesno_answer(){ + while true; do + echo -ne "$1 [y/n] " + if [[ -z "$2" ]]; then + read answer + else + answer="$2" + # TODO: add a test that the answer is a valid one + echo "$2" + fi + case $answer in + y|Y|yes) return 1; break ;; + n|N|no) return 0; break ;; + esac + done +} + +# check if the local svn has pending modifications +# check_pending_modifications contrib +function check_pending_modifications(){ + cd $1 + result=$(svn status | grep -v "^?") + if [[ ! -z "$result" ]]; then + svn status | grep -v "^?" + cd .. + return 1 + fi + cd .. + return 0 +} Index: contrib/tags/1.047/scripts/internal/generate-html-contents.pl =================================================================== --- contrib/tags/1.047/scripts/internal/generate-html-contents.pl (revision 0) +++ contrib/tags/1.047/scripts/internal/generate-html-contents.pl (revision 1310) @@ -0,0 +1,128 @@ +#!/usr/bin/perl -w +# +# Generate an html contents file for the current version of fjcontrib +# +# To be run from the main directory of a checkout of fjcontrib. +# Best run from a directory that is a clean checkout of a tag. +# +# set to 1 to sort contribs alphabetically, 0 otherwise +$sort=1; +# set to 1 to include release date taken from svn tags, 0 otherwise. +$include_date=1; + +$versions="contribs.svn"; + +# get svn info from one common location +if (! exists $ENV{'svn_read'}) { + print STDERR '$svn_read environment variable must be set, but is not (source common.sh first?)',"\n"; + exit(-1) +} else { + $svn_read=$ENV{'svn_read'}; + print STDERR '$svn_read is: ', $svn_read,"\n"; +} + +$svn=$svn_read."/contribs/"; +# link to browse the svn +$svnBrowse='https://phab.hepforge.org/source/fastjetsvn/browse/contrib/contribs/'; +# this ensures that one doesn't get the whole "blame" info, which is ugly +$svnPost='?as=source&blame=off'; + +$topversion=`head -1 VERSION`; +chomp $topversion; + +# read in contribs.svn file, fill contribs hash +open (VERSIONS, "<$versions") || die "Could not open $versions"; +%contribs_hash=(); +$contribs_array=(); +while ($line = ) { + if ($line =~ /^\s*([a-z][^\s]*)\s+([^\s]*)/i) { + $contrib = $1; + $version = $2; + push @contribs_array, $contrib; + $contribs_hash{$contrib} = $version; + } +} + +# sort contribs by alphabetical order +if ($sort) { @contribs_array = sort keys %contribs_hash; } + +# write out html table +$list=''; +foreach ( @contribs_array ) { + $contrib = $_; + $version = $contribs_hash{$_}; + if ($version =~ /^[0-9]/) {$version = "tags/$version";} + ($textversion = $version) =~ s/tags\///; + if($include_date) { + # extract date of last version tag from svn + print STDERR "getting date for $svn$contrib/$version\n"; + $date = `svn info $svn$contrib/$version | grep "Last Changed Date" | awk '{print \$4}'`; + # One could also use the --xml option and parse appropriately the output: + # $date = `svn --xml list $svn$contrib/$version`; + # At this stage, XML parsing is not implemented though. + # + #print $contrib." ".$date."\n"; + } + $list .= " + $contrib + $textversion "; + if ($include_date) {$list .= "$date";} + $list .= ""; + if (-e "$contrib/README") { + $list .= 'README '; + } + if (-e "$contrib/NEWS") { + $list .= 'NEWS '; + } + $list .= "\n"; +} + + +$head=' + + + + + +Version '.$topversion.' of FastJet Contrib is distributed with the following packages

+ + + + '; +if($include_date) {$head .= ' + ';} +$head .= ' + +'; + +$tail=' +
PackageVersionRelease dateInformation
+ + + + +'; + +print $head, $list, $tail; Property changes on: contrib/tags/1.047/scripts/internal/generate-html-contents.pl ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: contrib/tags/1.047/scripts/internal/package.sh =================================================================== --- contrib/tags/1.047/scripts/internal/package.sh (revision 0) +++ contrib/tags/1.047/scripts/internal/package.sh (revision 1310) @@ -0,0 +1,32 @@ + +#!/bin/bash + +# This script, meant for "internal use", packages all the +# latest version of the contributions into a tar.gz file, +# either reading the list from contribs.svn, or +# exploiting the list returned by running "./configure --list" +# in the top directory (see commented line) +# +# Usage: run ./scripts/internal/package.sh from the top directory +# + +version=`cat VERSION` +packagename=fjcontrib-$version +files="AUTHORS COPYING Makefile.in README VERSION NEWS configure data ChangeLog utils/check.sh utils/install-sh" +# get contribs list from contribs.svn +files="$files "$(cat contribs.svn | grep -v "^#" | grep -v "^$" | awk '{printf $1" "}') +# get contribs list from configure (may include "unofficial" local contribs) +#files="$files "`./configure --list` + +echo +echo Making a distclean, so as to only package relevant files +echo +make distclean +echo +echo Creating version $version +echo Including: $files +tar --exclude=".svn" --transform "s,^,$packagename/," -zcf $packagename.tar.gz $files + +exit + + Property changes on: contrib/tags/1.047/scripts/internal/package.sh ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: contrib/tags/1.047/scripts/internal/TODO =================================================================== --- contrib/tags/1.047/scripts/internal/TODO (revision 0) +++ contrib/tags/1.047/scripts/internal/TODO (revision 1310) @@ -0,0 +1,58 @@ +Plans/ideas for improvements to fjcontrib: +------------------------------------------ + +- scripts/update-contribs.sh ContribName + has some option to list available versions + +- some ability for contribs to require a minimal FJ version? + +- get an fjcontrib-config script working + +---------------------------------------------------------------------- +Older/obsolete things +--------------------- + +For a first release + +- check each contribution: + +- release them + +- decide/set version number of full contrib + +- tools for checking content of release??? + + +--------------------- + + + +- fjcontrib-config (--libs | ...) ??? + g++ `fjcontrib-config --cxxflags` + That could also hold version information + + overall package version: 0.001 + contribs: + JetFFMoments 1.0.1 + GenericSubtractor trunk@revision + +Questions: +---------- + - make-release.sh: do we want to check that we're in the trunk? + + +Mailing lists +-------------------- +- [=Gregory,Matteo,Gavin + possible volunteers] + + anyone can write to it, subscriptions are restricted + +- current is used to make announcements + about it + +- + + - it's for the librarians to contact contrib authors + - anyone signed up can write to it (or just librarians?) + - only those who have requested write access to the svn get signed up to it + Index: contrib/tags/1.047/scripts/internal/release-fjcontrib.sh =================================================================== --- contrib/tags/1.047/scripts/internal/release-fjcontrib.sh (revision 0) +++ contrib/tags/1.047/scripts/internal/release-fjcontrib.sh (revision 1310) @@ -0,0 +1,247 @@ +#!/bin/bash +# +# make a full release of the current trunk +# Then produce a tarball + +# include function and svn location definitions, etc. +. `dirname $0`/common.sh + +#======================================================================== +# svn sanity checks +#======================================================================== + +# make sure that everything is committed +echo +echo "Checking for pending modifications or updates (this may take a few seconds...)" +if [[ ! -z "`svn status --show-updates | grep -v "^?" | grep -v "^Status"`" ]]; then + echo + echo "WARNING: There are pending modifications or updates:" + echo + svn status --show-updates | grep -v '^\?' + echo + get_yesno_answer "Are you really sure you want to proceed?" && exit 1 + echo +else + echo "All files are up to date relative to the svn" +fi + +# make sure there is a VERSION and it does not already exist +version=`head -n1 VERSION` +if [[ ! -z $(svn ls $svn_read/tags | grep "^$version/") ]]; then + echo "Version $version of fjcontrib already exists. Aborting" + exit 1 +fi + +echo +echo "The contribs.svn file points to the following contrib versions" +echo +echo "----------------------------------------------------------------" +grep -v '^#' contribs.svn +echo "----------------------------------------------------------------" +echo + +get_yesno_answer "Do you want to proceed with the release of fjcontrib-$version?" && exit 1 + + +#======================================================================== +# check that the tools in contribs.svn behave OK +#======================================================================== +# get a clean checkout to perform sanity checks +svn co $svn_read/trunk fjcontrib-$version || { echo "Failed to do the svn checkout"; exit 1; } +cd fjcontrib-$version +echo "------------------------------------------------------------------------" +echo "Getting the contribs" +echo "------------------------------------------------------------------------" +if ./scripts/update-contribs.sh --force; then + echo "Success." + echo +else + echo "Failed." + echo + cd .. + exit 1 +fi + +echo "------------------------------------------------------------------------" +echo "Configuring" +echo "------------------------------------------------------------------------" + +# we need to determine whether to use fastjet-config from the path or +# use the one from the configure invocation in the trunk +is_in_path="yes" +which fastjet-config > /dev/null || is_in_path="no" + +trunk_version="" +if [[ -e "../Makefile" ]]; then + trunk_version=$(head -n3 ../Makefile | tail -n1 | grep "\--fastjet-config=" | sed 's/.*--fastjet-config=//;s/ .*$//') +fi + +if [[ -z "$trunk_version" ]]; then + if [[ "$is_in_path" == "no" ]]; then + echo "fastjet-config is not in your path and cannot be obtained from the trunk configuration. Aborting." + cd .. + exit 1 + else + echo "Using fastjet-config from your path" + configure_options="" + fi +else + if [[ "$is_in_path" == "no" ]]; then + echo "using fastjet-config from the trunk configuration" + configure_options=" --fastjet-config=${trunk_version}" + else + echo "fastjet-config can be either taken from your path or from $trunk_version." + configure_options="" + get_yesno_answer "Do you want to use the one from your trunk?" || { + configure_options=" --fastjet-config=${trunk_version}" + } + + fi +fi + +if ./configure $configure_options; then + echo "Success." + echo +else + echo "Failed." + echo + cd .. + exit 1 +fi + +echo "------------------------------------------------------------------------" +echo "Running make check" +echo "------------------------------------------------------------------------" +if make -j4 check; then + echo "Success." + echo +else + echo "Failed." + echo + cd .. + exit 1 +fi + +echo "------------------------------------------------------------------------" +echo "Running make fragile-shared" +echo "------------------------------------------------------------------------" +if make -j4 fragile-shared; then + echo "Success." + echo +else + echo "Failed." + echo + cd .. + exit 1 +fi + +cd .. +rm -Rf fjcontrib-$version +if [ -d fjcontrib-$version ]; then + echo "fjcontrib-$version still present. Aborting" +fi + +#======================================================================== +# tag the release +#======================================================================= +echo +get_yesno_answer "Confirm you want to tag the release and make a tarball?" && exit 1 +echo + +echo "------------------------------------------------------------------------" +echo "Making a tag of fjcontrib version $version" +echo "------------------------------------------------------------------------" +echo svn copy -m "tagging fjcontrib-$version" $svn_write/trunk $svn_write/tags/$version + svn copy -m "tagging fjcontrib-$version" $svn_write/trunk $svn_write/tags/$version + + +#======================================================================== +# produce a tarball +#======================================================================== +echo "------------------------------------------------------------------------" +echo "Checking out tags/$version of fjcontrib" +echo "------------------------------------------------------------------------" +# using svn_write, because the http access sometimes doesn't +# immediately see the up to date svn repository(?!) +echo svn co $svn_write/tags/$version fjcontrib-$version +svn co $svn_write/tags/$version fjcontrib-$version || { echo "Failed to checkout the new released version tags/$version"; exit 1; } +cd fjcontrib-$version +echo + +echo "------------------------------------------------------------------------" +echo "Getting the contribs" +echo "------------------------------------------------------------------------" +if ./scripts/update-contribs.sh --force; then + echo "Success." + echo +else + echo "Failed." + echo + cd .. + exit 1 +fi + +# # get rid of a few things for developers and "svn-users" only +# mkdir tmp +# for fn in check.sh install-sh; do +# mv scripts/internal/${fn} ./tmp +# done +# rm -Rf scripts +# mkdir scripts +# mkdir scripts/internal +# for fn in tmp/*; do +# mv $fn scripts/internal/${fn#tmp/} +# done +# rm DEVEL-GUIDELINES + +cd .. +echo "------------------------------------------------------------------------" +echo "Producing fjcontrib-$version.tar.gz" +echo "------------------------------------------------------------------------" +tar --exclude=".svn" \ + --exclude="fjcontrib-$version/contribs.svn" \ + --exclude="fjcontrib-$version/scripts" \ + --exclude="fjcontrib-$version/DEVEL-GUIDELINES" \ + -czf fjcontrib-$version.tar.gz fjcontrib-$version +rm -Rf fjcontrib-$version +echo +echo "Success." +echo + +#======================================================================== +# update things on HepForge +#======================================================================== +echo +get_yesno_answer "Confirm you want to upload to hepforge?" && exit 1 +echo +echo "------------------------------------------------------------------------" +echo "Uploading to HepForge" +echo "------------------------------------------------------------------------" + +echo "Uploading fjcontrib-$version.tar.gz" +scp fjcontrib-$version.tar.gz login.hepforge.org:$fastjet_web_dir/contrib/downloads/ + +mkdir hepforge_tmp +echo "Generating info for the webpage" +echo -n "$version" > hepforge_tmp/fjcversion.php +`dirname $0`/generate-html-contents.pl > hepforge_tmp/contents-$version.html +reldate=`date +"%e %B %Y"` +echo -n $reldate > hepforge_tmp/fjcreldate.php + +echo "Uploading info for the webpage" +scp hepforge_tmp/fjcversion.php hepforge_tmp/fjcreldate.php login.hepforge.org:$fastjet_web_dir/contrib/ +scp hepforge_tmp/contents-$version.html login.hepforge.org:$fastjet_web_dir/contrib/contents/$version.html + + +echo "Ensuring fastjet group write access for new files on hepforge" +# the following is needed because group sticky bit is erroneously not set +# on the fastjet downloads directory, so group does not get set to fastjet +#ssh login.hepforge.org chgrp fastjet "~fastjet/downloads/fjcontrib-$version.tar.gz" +# now give fastjet group write permission on these files +ssh login.hepforge.org chmod g+w "$fastjet_web_dir/contrib/fjcversion.php" "$fastjet_web_dir/contrib/fjcreldate.php" "$fastjet_web_dir/contrib/contents/$version.html" "$fastjet_web_dir/contrib/downloads/fjcontrib-$version.tar.gz" +rm -Rf hepforge_tmp +echo +echo "Done" +echo + + Property changes on: contrib/tags/1.047/scripts/internal/release-fjcontrib.sh ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: contrib/tags/1.047/scripts/internal/check-updates.sh =================================================================== --- contrib/tags/1.047/scripts/internal/check-updates.sh (revision 0) +++ contrib/tags/1.047/scripts/internal/check-updates.sh (revision 1310) @@ -0,0 +1,46 @@ +#!/bin/bash +# +# check if the versions in contrib.svn correspond to the latest tags + +# preamble +if [ x`which tput` != "x" ]; then + GREEN=$(tput setaf 2) + RED=$(tput setaf 1) + NORMAL=$(tput sgr0) +fi +. `dirname $0`/common.sh + +# get the list of contribs (discard "graveyard" +contrib_list=`svn ls $svn_read/contribs/ | grep -v graveyard | sed 's/\///g'` + +# loop over contribs +printf " %-25s %-15s %-15s\n" "contrib" "contribs.svn" "svn tag" +printf " %-25s %-15s %-15s\n" "-------" "------------" "-------" +for contrib in $contrib_list; do + # check version in contribs.svn + get_contrib_version $contrib contribs.svn version_included + version_included=`echo $version_included | sed 's/.*\///'` + + # check latest svn tag + version_tag=`svn ls $svn_read/contribs/${contrib}/tags | grep -E "^[0-9].[0-9].[0-9]/$" | tail -n1 | sed 's/\///g'` + + # see if that agrees + if [ x"$version_included" == x"$version_tag" ]; then + col=$GREEN + elif [ x"$version_included" == x"[None]" ]; then + if [ x"$version_tag" == x"" ]; then + col=$NORMAL + else + col=$RED + fi + elif [ x"$version_included" \> x"$version_tag" ]; then + col=$NORMAL + else + col=$RED + fi + printf "%s %-25s %-15s %-15s%s\n" ${col} $contrib $version_included $version_tag $NORMAL +done + + + + Property changes on: contrib/tags/1.047/scripts/internal/check-updates.sh ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: contrib/tags/1.047/scripts/internal/Template/NEWS =================================================================== Index: contrib/tags/1.047/scripts/internal/Template/Makefile =================================================================== --- contrib/tags/1.047/scripts/internal/Template/Makefile (revision 0) +++ contrib/tags/1.047/scripts/internal/Template/Makefile (revision 1310) @@ -0,0 +1,77 @@ +# If you are using this Makefile standalone and fastjet-config is not +# in your path, edit this line to specify the full path +FASTJETCONFIG=fastjet-config +PREFIX=`$(FASTJETCONFIG) --prefix` +CXX=g++ +CXXFLAGS= -O3 -Wall -g +install_script = $(SHELL) ../utils/install-sh +check_script = ../utils/check.sh + +# global contrib-wide Makefile include may override some of the above +# variables (leading "-" means don't give an error if you can't find +# the file) +-include ../.Makefile.inc + +#------------------------------------------------------------------------ +# things that are specific to this contrib +NAME=Template +SRCS=Template.cc +EXAMPLES=example +INSTALLED_HEADERS=Template.hh +#------------------------------------------------------------------------ + +CXXFLAGS+= $(shell $(FASTJETCONFIG) --cxxflags) +LDFLAGS += -lm $(shell $(FASTJETCONFIG) --libs) + +OBJS = $(SRCS:.cc=.o) +EXAMPLES_SRCS = $(EXAMPLES:=.cc) + +install_HEADER = $(install_script) -c -m 644 +install_LIB = $(install_script) -c -m 644 +install_DIR = $(install_script) -d +install_DATA = $(install_script) -c -m 644 +install_PROGRAM = $(install_script) -c -s +install_SCRIPT = $(install_script) -c + +.PHONY: clean distclean examples check install + +# compilation of the code (default target) +all: lib$(NAME).a + +lib$(NAME).a: $(OBJS) + ar cru lib$(NAME).a $(OBJS) + ranlib lib$(NAME).a + +# building the examples +examples: $(EXAMPLES) + +# the following construct makes it possible to automatically build +# each of the examples listed in $EXAMPLES +$(EXAMPLES): % : %.o all + $(CXX) $(CXXFLAGS) -o $@ $< -L. -l$(NAME) $(LDFLAGS) + +# check that everything went fine +check: examples + @for prog in $(EXAMPLES); do\ + $(check_script) $${prog} ../data/single-event.dat || exit 1; \ + done + @echo "All tests successful" + +# cleaning the directory +clean: + rm -f *~ *.o + +distclean: clean + rm -f lib$(NAME).a $(EXAMPLES) + +# install things in PREFIX/... +install: all + $(install_DIR) $(PREFIX)/include/fastjet/contrib + for header in $(INSTALLED_HEADERS); do\ + $(install_HEADER) $$header $(PREFIX)/include/fastjet/contrib/;\ + done + $(install_DIR) $(PREFIX)/lib + $(install_LIB) lib$(NAME).a $(PREFIX)/lib + +depend: + makedepend -Y -- -- $(SRCS) $(EXAMPLES_SRCS) Index: contrib/tags/1.047/scripts/internal/Template/README =================================================================== Index: contrib/tags/1.047/scripts/internal/Template/Template.cc =================================================================== --- contrib/tags/1.047/scripts/internal/Template/Template.cc (revision 0) +++ contrib/tags/1.047/scripts/internal/Template/Template.cc (revision 1310) @@ -0,0 +1,33 @@ +// $Id$ +// +// Copyright (c) -, +// +//---------------------------------------------------------------------- +// This file is part of FastJet contrib. +// +// It is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2 of the License, or (at +// your option) any later version. +// +// It is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +// License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this code. If not, see . +//---------------------------------------------------------------------- + +#include "Template.hh" + +FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh + +namespace contrib{ + + + + +} // namespace contrib + +FASTJET_END_NAMESPACE Index: contrib/tags/1.047/scripts/internal/Template/example.cc =================================================================== --- contrib/tags/1.047/scripts/internal/Template/example.cc (revision 0) +++ contrib/tags/1.047/scripts/internal/Template/example.cc (revision 1310) @@ -0,0 +1,71 @@ +// To run this example, use the following command: +// +// ./example < THE_INPUT_FILE [replace this with the file you want used!] +// +//---------------------------------------------------------------------- +// $Id$ +// +// Copyright (c) -, +// +//---------------------------------------------------------------------- +// This file is part of FastJet contrib. +// +// It is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2 of the License, or (at +// your option) any later version. +// +// It is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +// License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this code. If not, see . +//---------------------------------------------------------------------- + +#include +#include + +#include "fastjet/PseudoJet.hh" +#include +#include "Template.hh" // In external code, this should be fastjet/contrib/Template.hh + +using namespace std; +using namespace fastjet; + +// forward declaration to make things clearer +void read_event(vector &event); + +//---------------------------------------------------------------------- +int main(){ + + //---------------------------------------------------------- + // read in input particles + vector event; + read_event(event); + cout << "# read an event with " << event.size() << " particles" << endl; + + //---------------------------------------------------------- + // illustrate how this Template contrib works + + return 0; +} + +// read in input particles +void read_event(vector &event){ + string line; + while (getline(cin, line)) { + istringstream linestream(line); + // take substrings to avoid problems when there is extra "pollution" + // characters (e.g. line-feed). + if (line.substr(0,4) == "#END") {return;} + if (line.substr(0,1) == "#") {continue;} + double px,py,pz,E; + linestream >> px >> py >> pz >> E; + PseudoJet particle(px,py,pz,E); + + // push event onto back of full_event vector + event.push_back(particle); + } +} Index: contrib/tags/1.047/scripts/internal/Template/AUTHORS =================================================================== Index: contrib/tags/1.047/scripts/internal/Template/VERSION =================================================================== --- contrib/tags/1.047/scripts/internal/Template/VERSION (revision 0) +++ contrib/tags/1.047/scripts/internal/Template/VERSION (revision 1310) @@ -0,0 +1 @@ +1.0-devel Index: contrib/tags/1.047/scripts/internal/Template/example.ref =================================================================== --- contrib/tags/1.047/scripts/internal/Template/example.ref (revision 0) +++ contrib/tags/1.047/scripts/internal/Template/example.ref (revision 1310) @@ -0,0 +1,11 @@ +# This file is used by make check. It should be replaced with the +# output from +# +# ./example < YOUR_CHECK_INPUT +# +# YOUR_CHECK_INPUT is to be specified in the "check:" entry of the +# Makefile and should be included in the distribution. +# +# The top-level part of fjconfig includes some sample data files in +# its data/ directory to help with your checks. These are +# automatically distributed with fjcontrib. Index: contrib/tags/1.047/scripts/internal/Template/ChangeLog =================================================================== --- contrib/tags/1.047/scripts/internal/Template/ChangeLog (revision 0) +++ contrib/tags/1.047/scripts/internal/Template/ChangeLog (revision 1310) @@ -0,0 +1,3 @@ +20XX-XX-XX + + Initial creation Index: contrib/tags/1.047/scripts/internal/Template/COPYING =================================================================== --- contrib/tags/1.047/scripts/internal/Template/COPYING (revision 0) +++ contrib/tags/1.047/scripts/internal/Template/COPYING (revision 1310) @@ -0,0 +1,343 @@ +====================================================================== +====================================================================== +====================================================================== + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. Index: contrib/tags/1.047/scripts/internal/Template/Template.hh =================================================================== --- contrib/tags/1.047/scripts/internal/Template/Template.hh (revision 0) +++ contrib/tags/1.047/scripts/internal/Template/Template.hh (revision 1310) @@ -0,0 +1,50 @@ +// $Id$ +// +// Copyright (c)-, +// +//---------------------------------------------------------------------- +// This file is part of FastJet contrib. +// +// It is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2 of the License, or (at +// your option) any later version. +// +// It is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +// License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this code. If not, see . +//---------------------------------------------------------------------- + +#ifndef __FASTJET_CONTRIB_TEMPLATE_HH__ +#define __FASTJET_CONTRIB_TEMPLATE_HH__ + +#include + +FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh + +namespace contrib{ + +//------------------------------------------------------------------------ +/// \class Test +/// +/// +/// +class Template{ +public: + /// default ctor + Template(){} + + /// default dtor + ~Template(){} +}; + + +} // namespace contrib + +FASTJET_END_NAMESPACE + +#endif // __FASTJET_CONTRIB_TEMPLATE_HH__ Index: contrib/tags/1.047/scripts/internal/switch-to-version.sh =================================================================== --- contrib/tags/1.047/scripts/internal/switch-to-version.sh (revision 0) +++ contrib/tags/1.047/scripts/internal/switch-to-version.sh (revision 1310) @@ -0,0 +1,151 @@ +#!/bin/bash +# +# Usage: +# switch_to_version ContribName Version +# +# switch the given contrib to the given version. +# +# In both cases, if the version is "trunk", we give it a svn_write +# access; otherwise, we use a read-only (http) access. + +# load some common utilities +. `dirname $0`/common.sh + +# make sure a contrib is specified +contrib=${1%/} +if [[ -z "$contrib" ]]; then + echo "A contrib name has to be specified" + exit 1 +fi + +# decide wich version number to use +version=$2 +if [[ -z "$version" ]]; then + # get the version from the svn list + get_contrib_version $contrib contribs.svn version_svn + if [[ "$version_svn" == "[None]" ]]; then + echo "$contrib is not listed in the svn-supported list of contribs (contribs.svn)." + echo "You have to specify the version yourself." + if [ ! -z "`svn ls $svn_read/contribs | grep '^'$contrib'/$'`" ]; then + echo "Possible tagged (released) versions are:" + svn ls $svn_read/contribs/$contrib/tags | sed 's/\/$//g;s/^/ tags\//g' + fi + exit 1 + fi + echo " Using version $version_svn" + version=$version_svn +fi + +# decide which access mode we want +mode="ro" +if [[ "$version" == "trunk" ]]; then + mode="rw" +fi +if [[ "${version}" =~ ^branches ]]; then + mode="rw" +fi + +# if the version starts with a number, prefix it by "tags/" +if [[ "$version" =~ ^[0-9] ]]; then + version="tags/$version" +fi + +# get the current situation +get_svn_info $contrib current_mode current_version +if [[ "$version" == "$current_version" ]]; then + if [[ "$mode" == "$current_mode" ]]; then + if [[ "$version" != "["*"]" ]]; then + echo " Already at the requested version. Simply running svn up" + cd $contrib + svn up + cd .. + else + echo " Already at the requested version." + fi + exit 0 + fi +fi + +# make sure that the version exists +if [ -z "`svn ls $svn_read/contribs | grep '^'$contrib'/$'`" ]; then + echo "${contrib} does not appear to be a valid contrib in the svn repository" + exit 1 +fi +if [[ "${version}" != "trunk" ]]; then + # check if we're requesting a tag or a branch + if [[ "$version" =~ ^branches ]]; then + # we deal with a branch + branch_version=${version#*/} + if [ -z "`svn ls $svn_read/contribs/$contrib/branches | grep '^'$branch_version'/$'`" ]; then + echo "Version $version of $contrib does not exist. Exiting." + exit 1 + fi + else + # we deal with a tag + tagged_version=${version#*/} + if [ -z "`svn ls $svn_read/contribs/$contrib/tags | grep '^'$tagged_version'/$'`" ]; then + echo "Version $version of $contrib does not exist. Exiting." + exit 1 + fi + fi +fi + + +# if the directory does not yet exist, check it out +if [[ "$current_version" == "[None]" ]]; then + echo " Checking out version ${version} of ${contrib}" + if [[ "${mode}" == "rw" ]]; then + svn co ${svn_write}/contribs/${contrib}/${version} $contrib + else + svn co ${svn_read}/contribs/${contrib}/${version} $contrib + fi + exit 0 +fi + +# if the directory exists but is not on svn, print an error +# TODO: allow to overwrite your local copy +if [[ "$current_version" == "[NoSVN]" ]]; then + echo "You appear to have an unversionned copy of ${contrib}." + echo "Please move it out of the way before updating ${contrib} to a versioned version." + exit 1 +fi + +# check that there is no pending +check_pending_modifications $contrib || { + get_yesno_answer "Your local copy has modifications. Do you want to proceed with the update?" && { + echo "Aborting." + exit 1 + } +} + +# move to the contrib's directory +cd $contrib + +# in principle, we should use an "svn switch" here (change +# a directory in a given repos). But that does not allow +# to change the access type. So if the access type +# changes, we combine that with a svn relocate +# +# Options include: +# - a version upgrade: svn switch +# - trunk->stable: svn relocate + svn switch +# - stable->trunk: svn switch + svn relocate +# Se we need to check if we are currently using a svn+ssh +# or http access + +# if we're coming from the trunk, first switch to a read-only access +if [[ "$current_mode" == "rw" ]]; then + echo " (first changing the access-mode to read-only)" + svn switch --relocate ${svn_write}/contribs/$contrib/${current_version} ${svn_read}/contribs/$contrib/${current_version} + svn up +fi + +# now switch to the correct location +svn switch ${svn_read}/contribs/$contrib/$version +# grant write access when needed +if [[ "${mode}" == "rw" ]]; then + svn switch --relocate ${svn_read}/contribs/$contrib/${version} ${svn_write}/contribs/$contrib/${version} + svn up +fi + +cd .. Property changes on: contrib/tags/1.047/scripts/internal/switch-to-version.sh ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: contrib/tags/1.047/scripts/update-contribs.sh =================================================================== --- contrib/tags/1.047/scripts/update-contribs.sh (revision 0) +++ contrib/tags/1.047/scripts/update-contribs.sh (revision 1310) @@ -0,0 +1,183 @@ +#!/bin/bash +# +# Usage: +# update-contribs.sh +# +# update the list of all contribs. +# +# This does the following +# +# - run svn up to get the updates of all the scripts and latest contrib list +# +# - build the list of contribs: +# . by default, these are read from 'contribs.svn' +# . local requests can be specified in 'contribs.local' +# (in which case they take precedence) +# +# - for all the contribs that have to be updated, check the currently +# installed version and, if it does not match the one in +# contribs.svn (or contribs.local), ask if the user wants to update +# them. If yes, update the installed version. +# +# parse some command line options of the form +# update-contribs.sh -