diff options
| -rw-r--r-- | doc/contributing.texi | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/doc/contributing.texi b/doc/contributing.texi index f210a3fc761..2ae4844f717 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi | |||
| @@ -1099,6 +1099,7 @@ needed is to review and apply the patch. | |||
| 1099 | * Synopses and Descriptions:: Helping users find the right package. | 1099 | * Synopses and Descriptions:: Helping users find the right package. |
| 1100 | * Snippets versus Phases:: Whether to use a snippet, or a build phase. | 1100 | * Snippets versus Phases:: Whether to use a snippet, or a build phase. |
| 1101 | * Cyclic Module Dependencies:: Going full circle. | 1101 | * Cyclic Module Dependencies:: Going full circle. |
| 1102 | * Bulk updates:: This Little Maneuver's Gonna Cost Us 51 Years | ||
| 1102 | * Emacs Packages:: Your Elisp fix. | 1103 | * Emacs Packages:: Your Elisp fix. |
| 1103 | * Python Modules:: A touch of British comedy. | 1104 | * Python Modules:: A touch of British comedy. |
| 1104 | * Perl Modules:: Little pearls. | 1105 | * Perl Modules:: Little pearls. |
| @@ -1425,6 +1426,40 @@ Care would need to be taken to ensure the above procedure is only ever | |||
| 1425 | used in a package delayed fields or within another procedure also not | 1426 | used in a package delayed fields or within another procedure also not |
| 1426 | called at the top level. | 1427 | called at the top level. |
| 1427 | 1428 | ||
| 1429 | @node Bulk updates | ||
| 1430 | @subsection Bulk updates | ||
| 1431 | |||
| 1432 | @cindex packaging, maintenance | ||
| 1433 | Sometimes you may need to update a monotonic collection of grouped | ||
| 1434 | packages, in particular module e.g. @code{(gnu packages astronomy)} - it | ||
| 1435 | would require refreshing package versions, creating commits following | ||
| 1436 | guidelines and test them. Let's say there are 200+ packages which have | ||
| 1437 | fresh versions, you may deal with that task by applying the following | ||
| 1438 | technique. | ||
| 1439 | |||
| 1440 | Enter a development shell in your local Guix checkout, assuming you | ||
| 1441 | already run @code{bootstrap} and @code{configer}: | ||
| 1442 | |||
| 1443 | @example | ||
| 1444 | ~$ guix shell --development guix | ||
| 1445 | [env: /gnu/store/lzxbi1ps43msyw7m5wblziy8mj6hw5kw-profile] | ||
| 1446 | > ./pre-inst-env guix refresh --select=module:astronomy --update | ||
| 1447 | > ./pre-inst-env etc/commiter.scm | ||
| 1448 | @end example | ||
| 1449 | |||
| 1450 | The first command will update all packages in @code{(gnu packages | ||
| 1451 | astronomy)} to the latest versions and write changes back to the file. | ||
| 1452 | The second will invoke @code{etc/commiter.scm} script, a helper script | ||
| 1453 | aiming exactly for larger scale updates; it will identify each package | ||
| 1454 | diff and create corresponding commits with correct style. | ||
| 1455 | |||
| 1456 | If your machine is powerful enough you may check that the whole | ||
| 1457 | collection has no regression and still can be built successfully: | ||
| 1458 | @example | ||
| 1459 | [env: /gnu/store/lzxbi1ps43msyw7m5wblziy8mj6hw5kw-profile] | ||
| 1460 | > ./pre-inst-env guix build $(./pre-inst-env guix package -A | awk '/astronomy.scm/{print $1"@"$2}') | ||
| 1461 | @end example | ||
| 1462 | |||
| 1428 | @node Emacs Packages | 1463 | @node Emacs Packages |
| 1429 | @subsection Emacs Packages | 1464 | @subsection Emacs Packages |
| 1430 | 1465 | ||
