summaryrefslogtreecommitdiff
path: root/HACKING
Commit message (Collapse)AuthorAgeFilesLines
* maint: Document how to use Guix for Automake developmentMathieu Lirzin2018-01-181-0/+11
| | | | * HACKING <Setting the development environment>: New part.
* maint: Update copyright years to 2018Mathieu Lirzin2018-01-041-1/+1
| | | | This update has been made with 'make update-copyright'.
* maint: Update HACKINGMathieu Lirzin2017-11-241-18/+12
| | | | | * HACKING (Working with git): Remove reference to the 'micro' branch and adapt branch descriptions to the current branching scheme.
* maint: 'master' should be merged into 'next'Mathieu Lirzin2017-09-221-1/+1
| | | | * HACKING: Fix instructions merge instructions.
* maint: Document new Branch names conventionMathieu Lirzin2017-09-191-18/+14
| | | | * HACKING: Update to new Branch names.
* Prefer https: URLsPaul Eggert2017-09-191-2/+2
| | | | | | | | | | | | | | | | | | | | | In Gnulib, Emacs, etc. we are changing ftp: and http: URLs to use https:, to discourage man-in-the-middle attacks when downloading software. The attached patch propagates these changes upstream to Automake. This patch does not affect files that Automake is downstream of, which I'll patch separately. Althouth the resources are not secret, plain HTTP is vulnerable to malicious routers that tamper with responses from GNU servers, and this sort of thing is all too common when people in some other countries browse US-based websites. See, for example: Aceto G, Botta A, Pescapé A, Awan MF, Ahmad T, Qaisar S. Analyzing internet censorship in Pakistan. RTSI 2016. https://dx.doi.org/10.1109/RTSI.2016.7740626 HTTPS is not a complete solution here, but it can be a significant help. The GNU project regularly serves up code to users, so we should take some care here.
* maint: Document how to handle assignment exemptionminorMathieu Lirzin2017-09-151-0/+6
| | | | * HACKING: Update.
* bootstrap: Rename 'bootstrap.sh' to 'bootstrap'.Mathieu Lirzin2017-05-201-2/+2
| | | | | | | | | | | | | | Follow Gnulib's convention of using either "bootstrap" or "autogen.sh" file names for development bootstrap scripts. * bootstrap.sh: Rename to ... * bootstrap: ... this. * GNUmakefile (bootstrap): Adapt. * HACKING: Likewise. * Makefile.am (EXTRA_DIST): Likewise. * doc/automake.texi (Future of aclocal) (Error required file ltmain.sh not found): Likewise. * maintainer/maint.mk (autodiffs, update-copyright): Likewise.
* maint: Update copyright years to 2017.Mathieu Lirzin2017-03-021-1/+1
| | | | This update has been made with 'make update-copyright'.
* maint: update copyright years to 2015 (branch 'micro')Stefano Lattarini2015-01-051-1/+1
| | | | Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* maint: update copyright yearsStefano Lattarini2014-04-211-1/+1
| | | | | | We've been in 2014 already for few months now... Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* HACKING: minor clarificationStefano Lattarini2013-12-241-1/+1
| | | | Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* Merge branch 'micro' into maintStefano Lattarini2013-05-231-1/+4
|\ | | | | | | | | | | | | | | | | | | | | | | * micro: tests: avoid '$MAKE' redirections, use 'run_make' instead tests: avoid use of redirected 'run_make' invocations lint: warn against redirected 'run_make' invocations comments: next GNU make release 4.0, not 3.83 tests: fix a potential spurious failure due to global config.site HACKING: it's OK to do testsuite refactoring in a micro version Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| * HACKING: it's OK to do testsuite refactoring in a micro versionStefano Lattarini2013-05-221-1/+4
| | | | | | | | | | Reported-by: Peter Rosin <peda@lysator.liu.se> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | Merge branch 'micro' into maintStefano Lattarini2013-05-161-2/+0
|\ \ | |/ | | | | | | | | * micro: tests: remove exec bit from all of them ('micro' branch) maint: tests no longer need to have executable bit set
| * maint: tests no longer need to have executable bit setStefano Lattarini2013-05-161-2/+0
| | | | | | | | | | | | | | | | | | | | | | It has been a while since they are runnable only through "make check" or "./runtest", and not directly. * HACKING: Adjust. * t/README: Likewise, and updated the surrounding text to get rid of obsolete statements and advices. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | Merge branch 'micro' into maintStefano Lattarini2013-05-151-51/+52
|\ \ | |/ | | | | | | | | | | | | | | | | | | * micro: post-release: micro version bump (1.13.2a) release: stable micro release 1.13.2 vala tests: skip in a cross compiler setup HACKING: miscellaneous fixes, updates and enhancements NEWS: minor improvements to wording (about new versioning scheme) Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| * HACKING: miscellaneous fixes, updates and enhancementsStefano Lattarini2013-05-151-51/+51
| | | | | | | | Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | Merge branch 'branch-1.13.2' into maintStefano Lattarini2013-02-201-11/+74
|\ \ | |/ | | | | | | | | | | | | | | * branch-1.13.2: coverage: expose automake bug#13760 tests: refactor/enhance tests about make dry-run mode maint: describe new versioning and branching scheme, and adjust to it Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| * maint: describe new versioning and branching scheme, and adjust to itStefano Lattarini2013-02-171-19/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See discussion about automake bug#13578 for more details and background. Basically, for the versioning scheme: - micro versions only for bug and regression fixing; - minor versions for new backward-compatible features, and new non-fatal deprecations; - major versions for backward-incompatibilities, complex new features, and major refactoring. And for the git branching scheme: + branch 'next' is for the upcoming major version; + branch 'master' is now for the upcoming minor version; + branch 'maint' is for the upcoming micro (bug-fixing) version; + the merging hierarchy is: 'maint' -> 'master' -> 'next'. * HACKING (Automake versioning and compatibility scheme): New. (Working with git): Adjust. * NEWS: Update and fix. * aclocal.in: Adjust some "FIXME" messages. * automake.in: Likewise. * m4/mkdirp.m4: Likewise. * t/aclocal-acdir.sh: Likewise. * t/aclocal-macrodir.tap: Likewise. * t/aclocal-macrodirs.tap: Likewise. * lib/Automake/Options.pm: Likewise. * m4/internal/ac-config-macro-dirs.m4: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | style: call perl functions 'like_this()', not '&like_this()'Stefano Lattarini2013-02-141-4/+1
| | | | | | | | | | | | | | | | | | | | We can do so now that our build rules auto-generate a list of prototypes for all functions ins our scripts. * automake.in: Adjust throughout. * HACKING: Adjust advises. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | HACKING: suggest more checks before releasingStefano Lattarini2013-01-111-3/+8
| | | | | | | | | | | | | | | | In particular, "make check-no-trailing-backslash-in-recipes", "make check-cc-no-c-o" and "make maintainer-check" should also be run. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | HACKING: minor typofixStefano Lattarini2013-01-101-1/+1
| | | | | | | | Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | HACKING: bug-tracker, the PLANS directory, and how to plan "big" changesStefano Lattarini2013-01-101-0/+10
| | | | | | | | Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | HACKING: rewindable branches should live in the 'experimental/*' namespaceStefano Lattarini2013-01-101-3/+6
| | | | | | | | Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | HACKING: fixlets about git branch rewinding policyStefano Lattarini2013-01-101-5/+4
| | | | | | | | Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | HACKING: commit messages are not to follow GCS ChangeLog rules too stronglyStefano Lattarini2013-01-101-4/+4
| | | | | | | | Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | HACKING: "detailed explanation" in commit messages is almost mandatoryStefano Lattarini2013-01-101-2/+3
| | | | | | | | Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | HACKING: we use "merge --log" even when merging masterStefano Lattarini2013-01-101-3/+3
| | | | | | | | Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | HACKING: typofixStefano Lattarini2013-01-101-1/+1
|/ | | | Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* maint: update copyright year for 2013 (in branch maint)Stefano Lattarini2012-12-311-1/+1
| | | | Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* HACKING: release process: fixlets about the announcementStefano Lattarini2012-12-151-10/+14
| | | | | | | | | | * HACKING: The announcement should be generate *before* bumping the version number to the next alpha number. Also, only an abridged version of the announcement should be copied on the Savannah news feed (a link to the complete announcement should be linked from there, though). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* HACKING: update instructions to update the manuals at www.gnu.orgStefano Lattarini2012-12-131-4/+19
| | | | Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* docs: add rule to generate manuals for www.gnu.orgStefano Lattarini2012-12-091-6/+3
| | | | | | | | | | | | | | Less clerical work to do by hand. * Makefile.am (web-manuals): New rule. (clean_texinfo_clutter): New macro. * clean-web-manuals, clean-texinfo-clutter: New cleaning rules. (clean-local): Depend on them. * .gitignore: Update. * HACKING: Adjust instructions for generation of manuals. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* docs: copy the 'gendocs.sh' script from Texinfo CVS repositoryStefano Lattarini2012-12-081-3/+2
| | | | | | | | | | | | | As well as the 'gendocs_template' file. And enhance the "make fetch" target to keep them synced. It's better than having to fetch these files by hand each time a release is to be made. * Makefile.am (FETCHFILES): List 'gendocs.sh' and 'gendocs_template'. (fetch): Fetch them, into 'lib/'. (EXRA_DIST): Distribute them. * HACKING: Adjust instructions for generation of manuals. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* release: generate a stub for the release announcementStefano Lattarini2012-12-081-0/+4
| | | | | | | | | | | | | | | | | | | It's much better than having to write it my hand each time; after all, most of it is either boilerplate or a cope of NEWS entries. * Makefile.am (determine_release_type): Also set the shell variable '$announcement_type' appropriately. (print-release-type): Print the value of this new variable as well. (announcement): New phony target, generate a files with the same name. The recipe uses the shell variable '$announcement_type'. (CLEANFILES): Clean it. (PACKAGE_MAILINGLIST): New make macro, used when generating the 'announcement' file. * HACKING: Explain how to take advantage of the new convenience target. * .gitignore: Ignore the 'announcement' file. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* hacking: release procedure: fix order of some stepsStefano Lattarini2012-11-171-6/+6
| | | | | | | | * HACKING (Release procedure): The manuals should be rebuilt and uploaded at at www.gnu.org *before* bumping the version number to the next alpha release. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* readme: fixlets to HACKINGStefano Lattarini2012-08-121-11/+18
| | | | | | | | | | | * HACKING: Use longer "=====" lines to separate different section (this is just eye-candy admittedly, but I prefer it). (Release procedure): Don't tell to "update NEWS"; that should be updated throughout the normal course of development. Instead, tell to just check it. Improve description of the re-bootstrapping and rechecking procedure, also suggesting to use "git clean" beforehand (with all due warnings!). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* release: remove overly picky checkStefano Lattarini2012-05-191-4/+4
| | | | | | | | | * Makefile.am (git-tag-release): Do not check that the version number NEWS is updated w.r.t. $(VERSION); given the new way we manage NEWS, that would cause gratuitous spurious failures. * HACKING: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* hacking: copyright notices must be updated before releasingStefano Lattarini2012-04-301-0/+4
| | | | | | * HACKING (Release procedure): Suggest to use "make update-copyright". Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* fixup: avoid unconditional re-bootstrapping on "make dist"Stefano Lattarini2012-04-281-3/+3
| | | | | | | | | | | | | | | | | | | | | Since our 'bootstrap' script is distributed, the 'distdir' target depends on it. But in our GNUmakefile, we also have a 'bootstrap' target declared .PHONY, which when called re-bootstrap the Automake distribution. Thus, whenever we run "make dist", GNU make sees it must remake the 'bootstrap' target (as it is a dependency of the 'distdir' target), and thus ends up re-bootstrapping all the package (because of the .PHONY 'bootstrap' target in GNUmakefile). We fix this issue by renaming our bootstrap script to 'bootstrap.sh'. * bootstrap: Renamed ... * bootstrap.sh: ... to this. * GNUmakefile (bootstrap): Adjust. * Makefile.am (EXTRA_DIST): Likewise. (autodiffs): Likewise. * HACKING: Likewise. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* hacking: fix typoStefano Lattarini2012-04-181-1/+1
| | | | | | | * HACKING (Test suite): Refer to file 't/README', not to the non-existent 'tests/README'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* hacking: fixlets w.r.t. the release procedureStefano Lattarini2012-04-111-3/+3
| | | | | | | | | * HACKING (Release procedure): Do not state that the result of "make fetch" is woefully incomplete: this is not true anymore today. Suggest to re-run the testsuite after a "make fetch", in case any file has been updated. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* hacking: described new branching policy for 1.12 an laterStefano Lattarini2012-04-111-37/+16
| | | | | | | | | | | | | | | | | | This change closes automake bug#11153. * HACKING (Working with git): Document the new policy for automake branching and merging, which will start being applied after 1.12 is released: - the maintenance branch will be 'maint', and we will cut the maintenance releases directly from there; - the development branch will be 'master', and we will cut the new releases directly from there; - 'maint' will be kept regularly merged into 'master'. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* hacking: autotools-generated files are not committed anymoreStefano Lattarini2012-04-021-4/+0
| | | | | | | | | * HACKING (Working with git) Generated files like 'configure', 'Makefile.in' and 'aclocal.m4' are not committed anymore in our git repository since some months. Remove obsoleted advices that assumed they still were. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* hacking: simplify documentation of bootstrapping processStefano Lattarini2012-04-021-6/+2
| | | | | | | | | | | * HACKING (Working with git): Do not suggest that, to ensure the bootstrapping process is performed with the latest autotools, the developer could explicitly pass $AUTOCONF and $AUTOM4TE in the environment to the ./bootstrap and ./configure invocations: that is a little tricky and quite fragile. Instead, suggest to just put modern-enough version of the autotools early in PATH. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* Merge branch 'maint'Stefano Lattarini2012-03-181-0/+3
|\ | | | | | | | | | | | | | | | | | | * maint: install-mans: avoid spurious failure with NetBSD make install: don't create empty dirs when an empty 'foo_PRIMARY' is used aclocal: remove a couple of useless imports aclocal: create local directory where to install m4 files Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| * install: don't create empty dirs when an empty 'foo_PRIMARY' is usedStefano Lattarini2012-03-181-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes automake bug#11030 and bug#10997. An empty declaration of "foo_PRIMARY" in a Makefile.am used to cause the generated install rules to create the directory $(foodir) anyway, even if nothing was to be installed there. While this could be seen as a convenient way to create a $(foodir) directory upon "make install" (respecting $(DESTDIR) settings and such), it also caused problems with conditionals; for example, an input of: if FALSE pgkdata_DATA = something endif caused the generated install rules to unconditionally create the $(pkgdatadir) directory (see automake bug#10997). Also, a user wanting to create an empty directory upon installation can easily do so with a custom install hook, as in: installdirs-local: $(MKDIR_P) $(DESTDIR)$(foodir) install-data-hook: installdirs-local On the other hand, the old behavior of "always create $(foodir), even if 'foo_PRIMARY' is empty" was harder and more tricky to override. Thus, from now on, an empty declaration of "foo_PRIMARY" will not cause the directory $(foodir) to be created upon "make install" anymore. * lib/am/data.am, lib/am/java.am, lib/am/libs.am, lib/am/lisp.am, lib/am/ltlib.am, lib/am/mans.am, lib/am/progs.am, lib/am/python.am, lib/am/scripts.am, lib/am/texinfos.am: Adjust install rules to avoid creating an installation directory if no files are actually to be installed there. * tests/instdir-empty.test: Remove, it was testing a semantic opposite to the one we now want and implement. * tests/instdir-no-empty.test: New test, check the new semantic. * tests/instdir-cond.test: Enhance. Move the still-failing part of the test ... * tests/instdir-cond2.test: ... here. * tests/list-of-tests.mk, tests/Makefile.am (XFAIL_TESTS): Update. * tests/java3.test: Adjust to avoid spurious failures. * HACKING, NEWS, THANKS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| * Merge branch 'msvc' into maintPeter Rosin2012-03-071-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This merge remedies the confusing situation that some changes destined for both the master branch and the release branch (a.k.a. branch-1.11) currently needs to be made on the non-obvious msvc branch and not on the more natural maint branch. This has caused a seemingly endless string of less than optimal commits. The reason for the confusion stems from the fact that the changes made on the msvc branch became too radical and was considered only suitable for the master branch, and was thus written in a form suitable for master and then merged there. Later, the msvc branch was merged directly into branch-1.11, in order to rush the new features to the market and to keep the released scripts (lib/ar-lib, lib/compile and lib/depcomp) consistent with those on the master branch. However, some changes had to be made to the features added by the msvc branch in order for them to fit the requirements of branch-1.11, notably that the warnings issued in the extra-portability class cannot be enabled by -Wall in the 1.11.x maintenance releases. In retrospect, it would have been better to not merge msvc directly into branch-1.11, but instead do it via the maint branch (followed up with a dummy merge from maint into master) the moment it was decided that the msvc changes should make it into branch-1.11. All in all, this merge is going to affect neither the master branch nor branch-1.11, since it is followed up with dummy merges masking all changes. The merge is made to maintain the sanity of the poor developers, who wishes to once again have a working maint branch. Discussion about merging the msvc branch into branch-1.11: http://lists.gnu.org/archive/html/automake/2011-10/msg00030.html Discussion about why this merge hasn't happened before: http://lists.gnu.org/archive/html/automake/2011-12/msg00051.html Extra edits below. * lib/Automake/ChannelDefs.pm: Use the version from branch-1.11. * tests/ar-lib3.test: Likewise. * tests/ar-lib4.test: Likewise. * tests/extra-portability.test: Likewise. * tests/extra-portability2.test: Likewise. * tests/extradep.test: Likewise. * tests/extradep2.test: Likewise. * tests/list-of-tests.mk: Likewise. * HACKING: Backport the version from branch-1.11 while at it (as the change on branch-1.11 is also present on master via an unrelated commit), even though this change has nothing to do with the changes on the msvc branch.
* | hacking: document format for git commit messagesStefano Lattarini2012-02-261-2/+61
| | | | | | | | | | | | | | * HACKING (Writing a good commit message): New section. (Working with git): A related minor adjustment. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>