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):
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
20 With the same things that goes in the announce mail
24 Start termux on Android
25 Start: wssh mac ping fi.dk
26 niceload --prg firefox &
28 # With 23 GB RAM free this takes 3m43s
37 https://savannah.gnu.org/news/submit.php?group=parallel
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
47 Resource type: Software
48 GNU Parallel 20xxxx22 ('Xxxx')
51 https://orcid.org/0000-0002-6345-1437
54 GNU Parallel is a general parallelizer to run multiple serial command line programs in parallel without changing them.
62 DOI=10.5281/zenodo.4381888
63 SPCTAG='Privacy Shield'
66 . packager/releasescripts/updateversion
68 # Load doi+tag in other window
71 === Reconfig autoconf/automake, build tar.bz2 and test it ===
75 make pack_unpack_and_test_build
80 eval `gpg-agent --daemon`
81 # Takes up to 8 minutes
84 # Only needed for alpha:
86 eval `gpg-agent --daemon`
87 # Takes up to 8 minutes
90 == Update OpenSUSE build system ==
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/
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'
107 lbry://@GnuParallel#4/parallel-20210322.tar.bz2
109 # An easy way to support GNU Parallel is to tip on LBRY.
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
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"
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)
138 echo "$description" | grep '<<.*>>' && echo STOP STOP STOP ||
143 --file_path="$file_path" \
146 --description="$description" \
150 --license="$license" \
151 --thumbnail_url="$thumbnail_url" \
152 --channel_name="$channel_name" \
153 --release_time="$release_time" \
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
169 pushd ../parallel-web/parallel
170 # Bug at Savannah makes this take 30 seconds
172 cvs -z3 -d:ext:tange@cvs.savannah.gnu.org:/web/parallel co parallel)
174 cvs ci -m "New release"
177 == Commit released version ==
181 # Recheck OBS https://build.opensuse.org/package/show/home:tange/parallel
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
193 torsocks git push origin $TAG
194 torsocks git push origin $YYYYMMDD
196 git branch -d premaster
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
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
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
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.
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/
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
282 GNU Parallel too. It is my map/reduce tool with built in support to retry failed jobs.
283 -- Dhruva @mechanicker.bsky.social
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
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/
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.