aboutsummaryrefslogtreecommitdiff
path: root/dev/tools
AgeCommit message (Collapse)Author
2021-03-05Fix list-constributors.sh script.Théo Zimmermann
2021-03-03[build] Split stdlib to it's own opam package.Emilio Jesus Gallego Arias
We introduce a new package structure for Coq: - `coq-core`: Coq's OCaml tools code and plugins - `coq-stdlib`: Coq's stdlib [.vo files] - `coq`: meta-package that pulls `coq-{core,stdlib}` This has several advantages, in particular it allows to install Coq without the stdlib which is useful in several scenarios, it also open the door towards a versioning of the stdlib at the package level. The main user-visible change is that Coq's ML development files now live in `$lib/coq-core`, for compatibility in the regular build we install a symlink and support both setups for a while. Note that plugin developers and even `coq_makefile` should actually rely on `ocamlfind` to locate Coq's OCaml libs as to be more robust. There is a transient state where we actually look for both `$coqlib/plugins` and `$coqlib/../coq-core/plugins` as to support the non-ocamlfind plus custom variables. This will be much improved once #13617 is merged (which requires this PR first), then, we will introduce a `coq.boot` library so finally `coqdep`, `coqchk`, etc... can share the same path setup code. IMHO the plan should work fine.
2021-02-04Merge PR #13528: [RM] Script to list the contributors between two git revisionscoqbot-app[bot]
Reviewed-by: Zimmi48 Reviewed-by: gares
2021-01-27[sysinit] new component for system initializationEnrico Tassi
This component holds the code for initializing Coq: - parsing arguments not specific to the toplevel - initializing all components from vernac downwards (no stm) This commit moves stm specific arguments parsing to stm/stmargs.ml
2020-12-14Update dev/tools/pin-ci.shEnrico Tassi
Co-authored-by: Gaëtan Gilbert <gaetan.gilbert@skyskimmer.net>
2020-12-14[ci] simplify script to pin ci projectsEnrico Tassi
2020-12-10[ci] simplify overlay scriptsEnrico Tassi
2020-12-09[ci] function to declare projectsEnrico Tassi
incidentally the "projects" array can be queried to get the list of projects
2020-11-30list-contributors scriptMatthieu Sozeau
2020-11-28Merge PR #13487: CI: Use hash of dockerfile in CACHEKEYcoqbot-app[bot]
Reviewed-by: Zimmi48 Reviewed-by: gares
2020-11-27[RM] script to notify "platform" projects to tagEnrico Tassi
2020-11-26CI: Use hash of dockerfile in CACHEKEYGaëtan Gilbert
Checked by the linter so we don't forget to update it. Also checked by before_script so we don't run jobs for nothing.
2020-10-12Automatically merge overlays with most recent upstream versionGaëtan Gilbert
This avoids the need to rebase the overlay when nothing has changed.
2020-09-28Remove the ocamlformat git hook.Pierre-Marie Pédrot
2020-07-15Compatibility of make-change-log with MacOS X whose "sed" does not support "\+".Hugo Herbelin
We make it compatible by expanding "[0-9]\+" into "[0-9][0-9]*".
2020-05-25dev/tools/make-changelog.sh now asks about fixed bugsJason Gross
Fixes #12386
2020-05-23[dev/tools] Fix #12314: do not die silently if branch has no remote.Théo Zimmermann
2020-05-22[backport-pr] Select correct remote of the master branch.Théo Zimmermann
2020-05-20[merge-pr] Use a simpler method to get all pagesJason Gross
h/t SkySkimmer at https://github.com/coq/coq/pull/12316#issuecomment-630952659
2020-05-20[merge-pr.sh] Follow next links insteadJason Gross
As per PR review request
2020-05-20Use pagination in fetching the number of reviewsJason Gross
Fixes #12300 Note that I currently only paginate the API call for the number of reviews, not the main API call, because (a) the main API call doesn't seem subject to pagination (it returns a dict, not an array), and (b) because fetching the total number of pages incurs an extra API call for each one that we want to paginate, even if there is only one page. We could work around (b) with a significantly more complicated `curl_paginate` function which heuristically recognizes the end of the header/beginning of the body, such as ```bash curl_paginate() { # as per https://developer.github.com/v3/guides/traversing-with-pagination/#changing-the-number-of-items-received, GitHub will never give us more than 100 url="$1?per_page=100" # We need to process the header to get the pagination. We have two # options: # # 1. We can make an extra API call at the beginning to get the total # number of pages, search for a rel="last" link, and then loop # over all the pages. # # 2. We can ask for the header info with every single curl request, # search for a rel="next" link to follow to the next page, and # then parse out the body from the header. # # Although (1) is simpler, we choose to do (2) to save an extra API # call per invocation of curl. while [ ! -z "${url}" ]; do response="$(curl -si "${url}")" # we search for something like 'link: <https://api.github.com/repositories/1377159/pulls/12129/reviews?page=2>; rel="next", <https://api.github.com/repositories/1377159/pulls/12129/reviews?page=2>; rel="last"' and take the first 'next' url url="$(echo "${response}" | grep -m 1 -io '^link: .*>; rel="next"' | grep -o '<[^>]*>; rel="next"' | grep -o '<[^>]*>' | sed s'/[<>]//g')" echo "Response: ${response}" >&2 echo "${response}" | { is_header="yes" while read line; do if [ "${is_header}" == "yes" ]; then if echo "${line}" | grep -q '^\s*[\[{]'; then # we treat lines beginning with [ or { as the beginning of the response body is_header="no" echo "${line}" fi else echo "${line}" fi done } done } ```
2020-05-15Merge PR #11979: Add a rudimentary script to generate release changelog.Emilio Jesus Gallego Arias
Ack-by: SkySkimmer Reviewed-by: ejgallego
2020-04-09[pre-commit] Check ocamlformat version and silence ocamlformat.Théo Zimmermann
Cf. #12049.
2020-04-03Support when release branch is checked out in a worktree.Théo Zimmermann
2020-04-03Add a rudimentary script to generate release changelog.Théo Zimmermann
The idea is very simple: use the list in the release branch to know which changelog entries to include, but do the work of removing these entries and consolidating the released changelog in the master branch (so that it is applied both to the master branch and to the release branch following the backporting process).
2020-04-01Merge PR #11873: python3 script does not need to import from the futureEmilio Jesus Gallego Arias
Reviewed-by: JasonGross
2020-03-30Fix commit hook when there are no changes (eg amend message)Gaëtan Gilbert
Fix #11967
2020-03-24Run ocamlformat on modified ml / mli files in pre-commit hook.Théo Zimmermann
Thanks to `.ocamlformat-ignore`, we can call ocamlformat blindly but only the non-ignored files will be affected. Co-Authored-By: Gaëtan Gilbert <gaetan.gilbert@skyskimmer.net>
2020-03-20python3 script does not need to import from the futureRalf Treinen
2020-03-18Also show unchanged headers.Théo Zimmermann
2020-02-24Remove hard to read blue color in merge-prGaëtan Gilbert
2020-02-21[merge-script] Improve warning in case of batch merging.Théo Zimmermann
2020-01-19Merge PR #11214: Add a script to pin CI developments.Gaëtan Gilbert
Ack-by: JasonGross Ack-by: SkySkimmer Reviewed-by: Zimmi48
2020-01-07[merge script] Never bypass outdated branch sanity check.Théo Zimmermann
The message was confusing and the prompt let one reviewer think the merge script would take care of doing the pull, which it doesn't.
2019-12-02Remove deprecated compat modifier of Notation / Infix commands.Théo Zimmermann
And simplify a lot the compatibility infrastructure following this. Update dev/tools/update-compat.py Remove much complexity. Co-authored-by: Jason Gross <jgross@mit.edu>
2019-12-02Add a script to pin CI developments.Pierre-Marie Pédrot
It is useful for the release process, and there is no reason for somebody to lose time reimplementing it again.
2019-11-28Update README and make-changelog tool following introduction of changelog types.Théo Zimmermann
2019-11-25Error fatally if update-compat.py gets no flagJason Gross
c.f. https://github.com/coq/coq/pull/11032#issue-335944369 Also, change the default from python2 to python3 for update-compat while we're at it, and update file unicode handling accordingly. (Note that this file still works with both python2 and python3.)
2019-11-12Printing name of change log file in changelog script.Hugo Herbelin
2019-10-30Make changelog script aware of trailing slashes.Arthur Azevedo de Amorim
2019-10-11Simple script to prefill a changelog entryGaëtan Gilbert
2019-07-09merge-pr.sh: filter reviews to remove the PR authorGaëtan Gilbert
This removes spurious Ack-by lines
2019-07-06[python] Remove use of generic python shebang, update CIEmilio Jesus Gallego Arias
Fixes #10465 Following discussion we don't allow a generic `/usr/bin/python` shebang anymore. We thus move all the scripts [but one] to python3, and add python3 to the Azure base environment. Unfortunately we still depend on python2 for the update-compat.py script, see #10491 We thus have to complement #10467 adding python2 back to Nix, until #10491 is fixed.
2019-06-17Adapt change-header script to handle shebangs in addition to Emacs comments.Théo Zimmermann
Remove other types of lines before copyright headers.
2019-06-17Update change-header script to support updating more than just files with ↵Théo Zimmermann
ml-style headers.
2019-06-12Merge PR #10180: `deprecated` attribute support for notations and syntactic ↵Théo Zimmermann
definitions Ack-by: SkySkimmer Reviewed-by: Zimmi48 Ack-by: ggonthier Reviewed-by: herbelin
2019-06-06`deprecated` attribute support for notations and syntactic definitionsMaxime Dénès
We also slightly change the semantics of the `compat` syntax modifier to re-express it in terms of the `deprecated` attribute, and we deprecate it in favor of the latter.
2019-05-24Update coqdev-setup-proofgeneral for duneGaëtan Gilbert
2019-05-22Better dune ocamldebug integrationGaëtan Gilbert
- use coqc instead of coqtop (since -compile doesn't work anymore this is better) - pass through extra arguments to dune-dbg - auto detect the need to pass -emacs to ocamldebug - instructions for emacs users The dune-dbg dependencies are still broken ;_;
2019-03-26Improve the backport script.Guillaume Melquiond
It now uses the origin/master branch rather than the master branch, thus avoiding the need for local merges. More importantly, it no longer creates a subshell in case of conflicts, but instead gives control back to the user. Once conflicts are solved, it suffices to relaunch the script (instead of exiting the subshell). The reason is that, otherwise, there was no sane way of giving up a backport, due to the infinite subshell loop.