Released as 20250122 ('4K-AZ65')
[parallel.git] / doc / release_new_version
blob19fa9c6b9cf7166c2428a17fe8ab6591121f9a3b
1 # SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
2 # SPDX-License-Identifier: GFDL-1.3-or-later
3 # SPDX-License-Identifier: CC-BY-SA-4.0
5 = Notes on how to release new version =
7 == alpha/beta/production ==
9 Check that documentation is updated (compare to web):
11 git checkout master
12 git grep -E '(alpha|beta) testing' | cat
13 git diff $(date --date="last month" +%Y%m22)
14 Unmodified beta since last version => production
15 Unmodified alpha since last version => beta
16 Modified => alpha
18 == Update NEWS ==
20 With the same things that goes in the announce mail
22 == Testsuite ==
24 Start termux on Android
25 Start: wssh mac ping fi.dk
26 niceload --prg firefox &
27 cd testsuite;
28 # With 23 GB RAM free this takes 3m43s
29 make mem;
30 # Estimated time: 13m
31 make long
32 # Estimated time: 42m
33 make short
35 == Update version ==
37 https://savannah.gnu.org/news/submit.php?group=parallel
39 Draft:
40 perl -ne '/It\sis\savailable/..0 and print' doc/release_new_version | clipboard
43 https://zenodo.org/deposit/new
45 Do you already have a DOI for this upload? No
46 (Get a DOI now!)
47 Resource type: Software
48 GNU Parallel 20xxxx22 ('Xxxx')
49 Add creator: Person
50 Tange, Ole
51 https://orcid.org/0000-0002-6345-1437
52 Role: Contact person
53 Description
54 GNU Parallel is a general parallelizer to run multiple serial command line programs in parallel without changing them.
56 License:
57 gpl
59 [Save]
62 DOI=10.5281/zenodo.4381888
63 SPCTAG='Privacy Shield'
65 # Update version
66 . packager/releasescripts/updateversion
68 # Load doi+tag in other window
69 . .last-doitag.txt
71 === Reconfig autoconf/automake, build tar.bz2 and test it ===
73 . .last-doitag.txt
74 make reconf &&
75 make pack_unpack_and_test_build
77 == Upload ==
79 . .last-doitag.txt
80 eval `gpg-agent --daemon`
81 # Takes up to 8 minutes
82 make upload
84 # Only needed for alpha:
85 . .last-doitag.txt
86 eval `gpg-agent --daemon`
87 # Takes up to 8 minutes
88 make alphaupload
90 == Update OpenSUSE build system ==
92 . .last-doitag.txt
93 cd ~/privat/parallel/packager/obs
95 find home-tange/parallel/* -type f |
96   grep -Ev '(PKGBUILD|parallel.spec|Makefile)' |
97   parallel -j1 'osc rm {} || rm {}'
98 # This should not create new files
99 osc up home-tange/parallel/
100 make
101 # Reload build-status:
102 https://build.opensuse.org/package/show/home:tange/parallel
103 # Check that one .deb (Debian 5.0) and one .rpm (CentOS) end with 'succeeded'
105 == Upload LBRY ==
107 lbry://@GnuParallel#4/parallel-20210322.tar.bz2
109 # An easy way to support GNU Parallel is to tip on LBRY.
111 # :
113 # If you like GNU Parallel record a video testimonial: Say who you are, what you use GNU Parallel for, how it helps you, and what you like most about it. Include a command that uses GNU Parallel if you feel like it.
115 # Thumbnail: https://www.gnu.org/software/parallel/logo-gray+black10000.png
117 # Tags: gnu parallel software
119 . .last-doitag.txt
120 file_path="`pwd`/parallel-$YYYYMMDD.tar.bz2"
121 #title="GNU Parallel $YYYYMMDD ('$SPCTAG') [stable]"
122 title="GNU Parallel $YYYYMMDD ('$SPCTAG')"
123 name="GNU-Parallel-$YYYYMMDD-$TAG"
124 author="Ole Tange"
125 license="GNU GPLv3 or later"
126 thumbnail_url=https://www.gnu.org/software/parallel/logo-gray+black10000.png
127 channel_name="@GnuParallel"
128 tags_opt='--tag gnu --tag parallel --tag free --tag software'
129 release_time=$(date -d "$YYYYMMDD" +%s)
131 description="An easy way to support GNU Parallel is to tip on LBRY.
133 $(perl -ne '/About\sGNU\sParallel/ and exit;/It\sis\savailable/..0 and print' doc/release_new_version)
135 echo
136 echo "Title: $title"
137 echo
138 echo "$description" | grep '<<.*>>' && echo STOP STOP STOP ||
139 echo "$description"
141 lbrynet publish \
142   --bid=0.01 \
143   --file_path="$file_path" \
144   --name="$name" \
145   --title="$title" \
146   --description="$description" \
147   --author="$author" \
148   $languages_opt \
149   $tags_opt \
150   --license="$license" \
151   --thumbnail_url="$thumbnail_url" \
152   --channel_name="$channel_name" \
153   --release_time="$release_time" \
155 == Update website ==
157 http://www.gnu.org/software/parallel/
158 http://www.gnu.org/software/parallel/man.html
159 http://www.gnu.org/software/parallel/sql.html
160 http://www.gnu.org/software/parallel/sem.html
161 http://www.gnu.org/software/parallel/env_parallel.html
162 http://www.gnu.org/software/parallel/parcat.html
163 http://www.gnu.org/software/parallel/parset.html
164 http://www.gnu.org/software/parallel/parsort.html
165 http://www.gnu.org/software/parallel/niceload.html
167 make web
169 pushd ../parallel-web/parallel
170 # Bug at Savannah makes this take 30 seconds
171 (cd ..;
172  cvs -z3 -d:ext:tange@cvs.savannah.gnu.org:/web/parallel co parallel)
173 cvs up
174 cvs ci -m "New release"
175 pushd
177 == Commit released version ==
179 git diff
181 # Recheck OBS https://build.opensuse.org/package/show/home:tange/parallel
183 . .last-doitag.txt
184 echo "Released as $YYYYMMDD ('$TAG')." | grep MyTag && (STOP;STOP;STOP)
185 echo "$TAG" | grep ' ' && (STOP;STOP;STOP)
186 echo "Released as $YYYYMMDD ('$SPCTAG')."
188 git commit -a -m "Released as $YYYYMMDD ('$SPCTAG')"
189 git tag -s -u 88888888 -m "Released as $YYYYMMDD ('$SPCTAG')" $TAG
190 git tag -s -u 88888888 -m "Released as $YYYYMMDD ('$SPCTAG')" $YYYYMMDD
192 torsocks git push
193 torsocks git push origin $TAG
194 torsocks git push origin $YYYYMMDD
196 git branch -d premaster
197 git branch premaster
200 == Zenodo ==
202 Add tar.bz2 [Start upload] and [Publish].
205 == Update documentation ==
207 Update version number + 1
209 export YYYYMMDD=`yyyymmdd`
210 export YYYYMMDD=${YYYYMMDD:0:6}23
211 echo $YYYYMMDD
212 perl -i -pe "/version/ and s/20\d\d\d\d\d\d/$YYYYMMDD/" src/parallel
213 perl -i -pe "/version/ and s/20\d\d\d\d\d\d/$YYYYMMDD/" src/sql
214 perl -i -pe "/version/ and s/20\d\d\d\d\d\d/$YYYYMMDD/" src/env_parallel*
215 perl -i -pe "/version/ and s/20\d\d\d\d\d\d/$YYYYMMDD/" src/parsort
216 perl -i -pe "/version/ and s/20\d\d\d\d\d\d/$YYYYMMDD/" src/niceload
218 Unmodified beta since last version => production
219 Unmodified alpha since last version => beta
220 Modified => alpha
223 == Check URLs ==
225 make testurls
228 == Check REUSE ==
230 make reuse
232 https://api.reuse.software/info/git.savannah.gnu.org/git/parallel
233 https://api.reuse.software/status/git.savannah.gnu.org/git/parallel
235 == Update Savannah ==
237 perl -ne '/^Subject:/..0 and print' < doc/release_new_version | clipboard
239 Content from release mail:
241 https://savannah.gnu.org/news/submit.php?group=parallel
243 Test URLs.
245 https://savannah.gnu.org/news/approve.php?group=parallel
248 == Update Mastodon Twitter ==
250 https://hostux.social/@GNU_Parallel
252 New release of #GNU Parallel pi.dk/0
253 New in this release pi.dk/2
254 See the intro videos pi.dk/1
255 10 secs installation: pi.dk/3
257 GNU Parallel - for people who live life in the parallel lane.
260 == Send announce ==
262 http://groups.google.com/group/comp.unix.shell/post
263 http://groups.google.com/group/comp.unix.admin/post
265 https://lists.gnu.org/mailman/admindb/bug-parallel
266 https://lists.gnu.org/mailman/admindb/parallel
268 file:///home/tange/privat/parallel/doc/release_new_version
270 For codename look at https://www.onthisday.com/
272 from:tange@gnu.org
273 to:parallel@gnu.org, bug-parallel@gnu.org
274 stable-bcc: Jesse Alama <jessealama@fastmail.fm>
276 Subject: GNU Parallel 20250122 ('4K-AZ65') released [stable]
278 GNU Parallel 20250122 ('4K-AZ65') has been released. It is available for download at: lbry://@GnuParallel:4
280 Quote of the month:
282   GNU Parallel too. It is my map/reduce tool with built in support to retry failed jobs.
283     -- Dhruva @mechanicker.bsky.social
284   
285 New in this release:
287 * No new features. This is a candidate for a stable release.
289 * Bug fixes and man page updates.
291 News about GNU Parallel:
293 * How to Implement Parallelism and Concurrency Control (Queue) in Shell https://www.alibabacloud.com/blog/how-to-implement-parallelism-and-concurrency-control-queue-in-shell_601908?spm=a2c65.11461433.0.0.4ee35355IOL2MZ
296 GNU Parallel - For people who live life in the parallel lane.
298 If you like GNU Parallel record a video testimonial: Say who you are, what you use GNU Parallel for, how it helps you, and what you like most about it. Include a command that uses GNU Parallel if you feel like it.
301 = About GNU Parallel =
303 GNU Parallel is a shell tool for executing jobs in parallel using one or more computers. A job can be a single command or a small script that has to be run for each of the lines in the input. The typical input is a list of files, a list of hosts, a list of users, a list of URLs, or a list of tables. A job can also be a command that reads from a pipe. GNU Parallel can then split the input and pipe it into commands in parallel.
305 If you use xargs and tee today you will find GNU Parallel very easy to use as GNU Parallel is written to have the same options as xargs. If you write loops in shell, you will find GNU Parallel may be able to replace most of the loops and make them run faster by running several jobs in parallel. GNU Parallel can even replace nested loops.
307 GNU Parallel makes sure output from the commands is the same output as you would get had you run the commands sequentially. This makes it possible to use output from GNU Parallel as input for other programs.
309 For example you can run this to convert all jpeg files into png and gif files and have a progress bar:
311   parallel --bar convert {1} {1.}.{2} ::: *.jpg ::: png gif
313 Or you can generate big, medium, and small thumbnails of all jpeg files in sub dirs:
315   find . -name '*.jpg' |
316     parallel convert -geometry {2} {1} {1//}/thumb{2}_{1/} :::: - ::: 50 100 200
318 You can find more about GNU Parallel at: http://www.gnu.org/s/parallel/
320 You can install GNU Parallel in just 10 seconds with:
322     $ (wget -O - pi.dk/3 || lynx -source pi.dk/3 || curl pi.dk/3/ || \
323        fetch -o - http://pi.dk/3 ) > install.sh
324     $ sha1sum install.sh | grep c555f616391c6f7c28bf938044f4ec50
325     12345678 c555f616 391c6f7c 28bf9380 44f4ec50
326     $ md5sum install.sh | grep 707275363428aa9e9a136b9a7296dfe4
327     70727536 3428aa9e 9a136b9a 7296dfe4
328     $ sha512sum install.sh | grep b24bfe249695e0236f6bc7de85828fe1f08f4259
329     83320d89 f56698ec 77454856 895edc3e aa16feab 2757966e 5092ef2d 661b8b45
330     b24bfe24 9695e023 6f6bc7de 85828fe1 f08f4259 6ce5480a 5e1571b2 8b722f21
331     $ bash install.sh
333 Watch the intro video on http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
335 Walk through the tutorial (man parallel_tutorial). Your command line will love you for it.
337 When using programs that use GNU Parallel to process data for publication please cite:
339 O. Tange (2018): GNU Parallel 2018, March 2018, https://doi.org/10.5281/zenodo.1146014.
341 If you like GNU Parallel:
343 * Give a demo at your local user group/team/colleagues
344 * Post the intro videos on Reddit/Diaspora*/forums/blogs/ Identi.ca/Google+/Twitter/Facebook/Linkedin/mailing lists
345 * Get the merchandise https://gnuparallel.threadless.com/designs/gnu-parallel
346 * Request or write a review for your favourite blog or magazine
347 * Request or build a package for your favourite distribution (if it is not already there)
348 * Invite me for your next conference
350 If you use programs that use GNU Parallel for research:
352 * Please cite GNU Parallel in you publications (use --citation)
354 If GNU Parallel saves you money:
356 * (Have your company) donate to FSF https://my.fsf.org/donate/
359 = About GNU SQL =
361 GNU sql aims to give a simple, unified interface for accessing databases through all the different databases' command line clients. So far the focus has been on giving a common way to specify login information (protocol, username, password, hostname, and port number), size (database and table size), and running queries.
363 The database is addressed using a DBURL. If commands are left out you will get that database's interactive shell.
365 When using GNU SQL for a publication please cite:
367 O. Tange (2011): GNU SQL - A Command Line Tool for Accessing Different Databases Using DBURLs, ;login: The USENIX Magazine, April 2011:29-32.
370 = About GNU Niceload =
372 GNU niceload slows down a program when the computer load average (or other system activity) is above a certain limit. When the limit is reached the program will be suspended for some time. If the limit is a soft limit the program will be allowed to run for short amounts of time before being suspended again. If the limit is a hard limit the program will only be allowed to run when the system is below the limit.