GithubHelp home page GithubHelp logo

tarides / dune-release Goto Github PK

View Code? Open in Web Editor NEW
111.0 111.0 38.0 1.38 MB

Streamlining the release of dune packages to opam

License: ISC License

Makefile 0.02% OCaml 80.86% Perl 11.34% Standard ML 7.78%
opam release

dune-release's People

Contributors

3rafal avatar anmonteiro avatar anuragsoni avatar avsm avatar craigfe avatar ejgallego avatar emillon avatar gpetiot avatar gridbugs avatar hannesm avatar ifazk avatar jeremiedimino avatar julow avatar kit-ty-kate avatar lehy-probayes avatar leonidas-from-xiv avatar let-def avatar misterda avatar mjambon avatar nathanreb avatar paurkedal avatar pitag-ha avatar rgrinberg avatar rikusilvola avatar samoht avatar sternenseemann avatar yomimono avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dune-release's Issues

Error when submitting pull request

dune-release worked wonderfully for me until the step where it was supposed to make a PR:

dune-release: [ERROR] Could not find html_url id in response:
                      HTTP/1.1 422 Unprocessable Entity
                      Server: GitHub.com
                      Date: Sun, 15 Jul 2018 07:36:29 GMT
                      Content-Type: application/json;
                      charset=utf-8
                      Content-Length: 235
                      Status: 422 Unprocessable Entity
                      X-RateLimit-Limit: 5000
                      X-RateLimit-Remaining: 4939
                      X-RateLimit-Reset: 1531640970
                      X-OAuth-Scopes: public_repo
                      X-Accepted-OAuth-Scopes:
                      X-GitHub-Media-Type: github.v3;
                      format=json
                      Access-Control-Expose-Headers: ETag, Link, Retry-After,
                      X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
                      X-RateLimit-Reset, X-OAuth-Scopes,
                      X-Accepted-OAuth-Scopes,
                      X-Poll-Interval
                      Access-Control-Allow-Origin:
                      *
                      Strict-Transport-Security: max-age=31536000;
                      includeSubdomains; preload
                      X-Frame-Options: deny
                      X-Content-Type-Options: nosniff
                      X-XSS-Protection: 1; mode=block
                      Referrer-Policy: origin-when-cross-origin,
                      strict-origin-when-cross-origin
                      Content-Security-Policy: default-src
                      'none'
                      X-Runtime-rack: 0.117253
                      X-GitHub-Request-Id:
                      A73A:645B:143FA6A:293F059:5B4AF97C

                      {
                        "message": "Validation Failed",
                        "errors": [
                          {
                            "resource": "PullRequest",
                            "field": "head",
                            "code": "invalid"
                          }
                        ],
                        "documentation_url":
                      "https://developer.github.com/v3/pulls/#create-a-pull-request"
                      }
                      .

Duplicated version field.

If my opam file already contains a version field, dune-release distrib adds a new version field but doesn't remove the old one:

version: "9da0fd9"
opam-version: "1.2"
version: "dev"
...

Build failure because jbuilder is not picking the right root

Step to reproduce:

$ git clone https://github.com/janestreet/spawn.git
$ cd spawn
$ dune-release distrib
[...]
<failure because jbuilder picks up the wrong workspace root>

I think all the calls to jbuilder should have -p <package> to make sure they are reproducible, i.e.:

  • they don't read the user configuration file
  • the root is wherever jbuilder is started
  • ...

Incorrect GitHub API access when publishing distributions

The following is part of the verbose error message I get when trying to publish a distribution with the latest dune-release version 1.01:

dune-release: [EXEC:59307] ['curl' '-s' '-S' '-K' '-' '-D' '-' '--data'
                            '{ "tag_name" : "1.23.0", "body" : "CHANGES:\n\n* Switched to dune and dune-release\n" }'
                            'https://api.github.com/repos/gsl-ocaml/releases/releases']
dune-release: [ERROR] Could not find release id in response:
                      HTTP/1.1 404 Not Found

I assume the URL for obtaining release information should read instead as follows:

https://api.github.com/repos/mmottl/gsl-ocaml/releases

dune-release lint could catch missing descr

Hi,

Thanks for dune-release, it's useful to release things with dune :)

I just noticed a frustrating point : if the descr file is missing, or if somehow the description can not be extracted from README.md, dune-release will fail when when doing dune-release opam pkg. It'd be nice if it could be caught before tagging the release, for example at dune-release lint time.

Thanks!

--keep-v doesn't seem to work with `dune-release opam submit`

It works with all the other commands, however the opam submit one seems to fail:

$ dune-release opam submit --keep-v 
Submitting _build/base.v0.11.1
From https://github.com/ocaml/opam-repository
 * branch                master     -> FETCH_HEAD
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 7263 commits.
  (use "git push" to publish your local commits)
Deleted branch release-base-v0.11.1 (was 4ff1e331c).
dune-release: [ERROR] /usr/local/home/jdimino/base/_build/base.0.11.1 does
                      not exist, did you run:
                        dune-release opam pkg -n base
                      

I tried passing --dist-version=v0.11.1 but it stills fails with the same error.

publish fails with subpackages

The package lpd declares a subpackage lpd.socket and this makes dune-release publish fail with

        odoc _doc/_odoc/pkg/lpd/page-index.odoc
File "../../../_mlds/lpd/index.mld", line 3, characters 0-22:
only one title-level heading is allowed
File "../../../_mlds/lpd/index.mld", line 3, characters 0-22:
'1': bad section level (2-4 allowed)
dune-release: [ERROR] No package delegate found. Try `dune-release help
                      delegate` for more information.

because index.mld content is

{1 Library lpd}
The entry point of this library is the module:
{!module-Lpd}.
{1 Library lpd.socket}
The entry point of this library is the module:
{!module-Socket}.

Issue when releasing from a LTS branch

If the tag we are using while doing dune-release publish submit is not at the tip of master, toy-github-delegate (or its equivalent, eg. Dune_release.Github.publish_distrib) becomes confused a creates a new release on the wrong commit..

dune-release distrib freezes on core

Step to reproduce:

$ git clone https://github.com/janestreet/core.git
$ cd core
$ dune-release distrib
Cloning into '_build/core-c125d07.build'...
done.

then it just freezes

Jbuilder error during `distrib`

During dune-release distrib for regenerate, I get the following error message:

Building package in _build/regenerate-9da0fd9
dune-release: [EXEC:30523] ['jbuilder' 'build']
Entering directory '/home/gabriel/Sources/regenerate'
_build/regenerate-9da0fd9/install refers to unknown build context: regenerate-9da0fd9

[FAIL] package builds

My guess is that the jbuilder command is not precise enough (it should probably be jbuilder build -p PKG "@install", or something like that.

Documentation publication fails

I get the following error when running dune-release bistro, apparently in the dune-release publish doc step:

Switched to a new branch 'gh-pages'
dune-release: [ERROR] create temporary file api/bos-825d00.tmp: No such file
                      or directory
dune-release: [ERROR] run ['dune-release' 'publish' '--verbosity' 'warning']:
                      exited with 3

Tag detection is broken

Tag detection seems to rely on several things, and sometimes ignores what you give on the command line or what is present in _build. For my last tyre release, it insisted that it was 0.1 while 0.4 was tagged in the repository.

That was with last versions of dune and dune-release.

`publish distrib` and 2FA

I have 2FA enabled, and I basically never use the https auth for github (I always go through ssh).

When trying to use publish distrib, I get a 401 that ends with this:

{
"message": "Must specify two-factor authentication OTP code.",
"documentation_url": 
  "https://developer.github.com/v3/auth#working-with-two-factor-authentication"
}

I guess there is an extra step needed.
Alternatively, dune-release could direct me to the page for creating personal access tokens.

Hardcoded git transfer protocol doesn't always work.

Here's the error that I get from trying to publish a tag:

fatal: remote error:
  You can't push to git://github.com/diml/utop.git
  Use https://github.com/diml/utop.git

Why does dune-release hard code the git://? Shouldn't it read from the remotes?

Also, I obtained that error message by manually running the command that dune-release printed out. It would be nice if dune-release just print the stderr in this case.

Error while publishing documentation

% dune-release publish doc -vvv
dune-release: [INFO] dune-release 0.3.0 running
dune-release: [EXEC:31315] ['git' 'rev-parse' '--git-dir']
dune-release: [EXEC:31316] ['git' '--git-dir' '.git' '--work-tree' './'
                            'describe' '--always' 'HEAD']
dune-release: [EXEC:31317] ['tar' '-xjf' 'tyre-0.1-81-ge6154d6.tbz']
dune-release: [EXEC:31319] ['jbuilder' 'build' '-p' 'tyre' '@doc']
dune-release: [INFO] Parsing opam file tyre.opam
dune-release: [EXEC:31329] ['git' 'rev-parse' '--git-dir']
dune-release: [EXEC:31330] ['git' '--git-dir' '.git' '--work-tree' './'
                            'describe' '--always' 'HEAD']
dune-release: [EXEC:31331] ['git' 'rev-parse' '--git-dir']
dune-release: [EXEC:31332] ['git' '--git-dir' '.git' 'fetch'
                            '[email protected]:drup/tyre.git' 'gh-pages']
Depuis github.com:drup/tyre
 * branch            gh-pages   -> FETCH_HEAD
dune-release: [EXEC:31337] ['git' '--git-dir' '.git' 'rev-parse'
                            'FETCH_HEAD']
dune-release: [EXEC:31338] ['git' '--git-dir' '.git' 'branch' '-f' 'gh-pages'
                            '9302056fd073a8ab5cb50907cc7aa26ad42eaf7c']
dune-release: [EXEC:31339] ['git' 'rev-parse' '--git-dir']
dune-release: [EXEC:31340] ['git' '--git-dir' '.git' 'clone' '--local' '.git'
                            '_build/tyre-0.1-81-ge6154d6/_build/gh-pages']
Clonage dans '_build/tyre-0.1-81-ge6154d6/_build/gh-pages'...
fait.
dune-release: [EXEC:31342] ['git' 'rev-parse' '--git-dir']
dune-release: [EXEC:31343] ['git' '--git-dir' '.git' 'checkout' 'gh-pages']
La branche 'gh-pages' est paramétrée pour suivre la branche distante 'gh-pages' depuis 'origin'.
Basculement sur la nouvelle branche 'gh-pages'
dune-release: [EXEC:31344] ['cp' '-R'
                            '/home/gabriel/Sources/tyre/_build/tyre-0.1-81-ge6154d6/_build/default/_doc/_html/'
                            'dev/Tyre.html']
cp: impossible de créer le répertoire 'dev/Tyre.html': Aucun fichier ou dossier de ce type
dune-release: [ERROR] run ['cp' '-R'
                          
                      '/home/gabriel/Sources/tyre/_build/tyre-0.1-81-ge6154d6/_build/default/_doc/_html/'
                           'dev/Tyre.html']: exited with 1

Latest version of dune, dune-release and odoc.

Fail to checkout opam-repository

Interaction:

$ dune-release opam submit
Submitting _build/ANSITerminal.0.8.1
From https://github.com/ocaml/opam-repository
 * branch                  master     -> FETCH_HEAD
dune-release: [ERROR] ['git' '--git-dir' '.git' '--work-tree' './' 'checkout'
                      '--quiet' '-b'
                       'release-ANSITerminal-0.8.1'
                      'b1ac8b1e1e4ad5da0a6e09713f413c07eac6ed52'] exited with
                      code 1

`dune-release opam submit --keep-v` looks for the wrong directory

When trying to submit a new minor release of core, I get:

$ dune-release opam submit --keep-v 
Submitting _build/core.v0.11.3
From https://github.com/ocaml/opam-repository
 * branch                master     -> FETCH_HEAD
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 7334 commits.
  (use "git push" to publish your local commits)
Deleted branch release-core-v0.11.3 (was 2fa2ea6a6).
dune-release: [ERROR] /usr/local/home/jdimino/js-all/core/_build/core.0.11.3
                      does not exist, did you run:
                        dune-release opam pkg -n core

It seems that dune-release is looking for _build/core.0.11.3, while instead it should be looking for _build/core.v0.11.3 because of the --keep-v option

Incorrect branch when publishing distribution

The following is part of the output of dune-release publish distrib --verbosity=debug:

dune-release: [EXEC:30081] ['git' '--git-dir' '.git' 'push' '--force'
                            '[email protected]:mmottl/gsl-ocaml.git'
                            '1.23.0-2-g0ad5974']
fatal: 1.23.0-2-g0ad5974 cannot be resolved to branch.
dune-release: [ERROR] run ['git' '--git-dir' '.git' 'push' '--force'
                           '[email protected]:mmottl/gsl-ocaml.git'
                      '1.23.0-2-g0ad5974']: exited with 128

The branch used by dune-release above contains an extra suffix -2-g0ad5974 that doesn't exist.

opam submit asks for known username

Even though I have the required release.yml and github.token files in .config/dune, dune-release opam submit still asks me for my username:

Submitting _build/aifad.2.2.0
From https://github.com/ocaml/opam-repository
 * branch                master     -> FETCH_HEAD
Checking out files: 100% (4464/4464), done.
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
Deleted branch release-aifad-2.2.0 (was 9430fbd3e).
[release-aifad-2.2.0 5127d5e00] [new release] aifad (2.2.0)
 3 files changed, 27 insertions(+)
 create mode 100644 packages/aifad/aifad.2.2.0/descr
 create mode 100644 packages/aifad/aifad.2.2.0/opam
 create mode 100644 packages/aifad/aifad.2.2.0/url
Username for 'https://github.com':

Any idea what may be going on here?

`publish doc` copies the wrong directory

There are 3 subdirectories under doc/ in the build artifacts: _html, _odoc, _mld. dune-release currently copies all three, instead of copying just the content of _html.

Additionally, it would be nice to ask confirmation where the doc should go before actually copying it and pushing.

Trouble with `opam submit` and v-prefixed tag

Using dune-release 0.2.0 I was able to get https://github.com/hcarty/ocaml-gdal/releases/tag/v0.10.0 without any trouble by going through the release steps up through dune-release opam pkg. Yay and thank you!

Unfortunately dune-release opam submit fails with this error:

dune-release: [ERROR] /home/hcarty/projects/ocaml-gdal/_build/gdal.v0.10.0
                      does not exist, did you run:
                        dune-release opam pkg -n gdal

/home/hcarty/projects/ocaml-gdal/_build/gdal.v0.10.0 does not exist but /home/hcarty/projects/ocaml-gdal/_build/gdal.0.10.0 does. The v was trimmed from the version number during dune-release opam pkg but not during dune-release opam submit.

Publish to org doc URL fails

dune-release: [ERROR] Could not derive publication directory $PATH from opam
                      doc field value "https://owlbarn.github.io/"; expected
                      the pattern $SCHEME://$USER.github.io/$REPO/$PATH
[FAIL] lint _build/owl-0.4.0 failure: 1 errors.

For this particular package (Owl), the docs are intended to be published as the owlbarn org website, so no $REPO or $PATH components provided.

(Possibly an edge case I admit :)

Customize the opam file before distrib creation

Sometimes, you might want to tweak the opam file a little bit before doing a release. For example, I like to change the doc field to point to the right version of the documentation. It would be nice if dune-release supported that.

Distrib on broken tags fails and can't roll back

When you dune-release tag a new git tag is created, but there is no validation that said tag actually works. So when doing dune-release distrib afterwards this might fail (because the build fails or tests fail etc) so now you have a tag that is invalid and needs to be removed manually.

I am aware that distrib needs a version to construct the tarball but the ordering is unfortunate. Maybe there could be something like attempt-tag or similar that could abort when it can't create a tarball.

Ask for confirmation before doing non-reversible side-effects.

dune-release is very happy about committing and pushing and doing all sort of things. That's fine, but given the fact that the commands and their documentation are a little bit nebulous about what they do in precise terms, they really should ask for confirmation before doing anything that is hard to revert.

Final pull request to opam-repository fails

Not sure what's happening here. Seem to get a failure when dune-release opam submit --pkg-names ... submits a multi-package (single repo) PR to opam-repository. I appear to be able to create the PR myself by hand, no problem.

Error is

...
Total 17 (delta 6), reused 0 (delta 0)
remote: Resolving deltas: 100% (6/6), completed with 3 local objects.
To github.com:mor1/opam-repository
 + 666d75518f...230beffc54 release-owl-0.4.0 -> release-owl-0.4.0 (forced update)
dune-release: [ERROR] Could not find html_url id in response:
                      HTTP/1.1 422 Unprocessable Entity
                      Server: GitHub.com
                      Date: Wed, 08 Aug 2018 23:15:19 GMT
                      Content-Type: application/json;
                      charset=utf-8
                      Content-Length: 235
                      Status: 422 Unprocessable Entity
                      X-RateLimit-Limit: 5000
                      X-RateLimit-Remaining: 4830
                      X-RateLimit-Reset: 1533771756
                      X-OAuth-Scopes: public_repo
                      X-Accepted-OAuth-Scopes:
                      X-GitHub-Media-Type: github.v3;
                      format=json
                      Access-Control-Expose-Headers: ETag, Link, Retry-After,
                      X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
                      X-RateLimit-Reset, X-OAuth-Scopes,
                      X-Accepted-OAuth-Scopes,
                      X-Poll-Interval
                      Access-Control-Allow-Origin:
                      *
                      Strict-Transport-Security: max-age=31536000;
                      includeSubdomains; preload
                      X-Frame-Options: deny
                      X-Content-Type-Options: nosniff
                      X-XSS-Protection: 1; mode=block
                      Referrer-Policy: origin-when-cross-origin,
                      strict-origin-when-cross-origin
                      Content-Security-Policy: default-src
                      'none'
                      X-Runtime-rack: 0.073096
                      X-GitHub-Request-Id:
                      D709:09BB:2407C4:534A9D:5B6B7986

                      {
                        "message": "Validation Failed",
                        "errors": [
                          {
                            "resource": "PullRequest",
                            "field": "head",
                            "code": "invalid"
                          }
                        ],
                        "documentation_url":
                      "https://developer.github.com/v3/pulls/#create-a-pull-request"
                      }
                      .

Be a bit more flexible regarding filenames

Apparently, Readme.md (capital first letter, lowercase rest) is not recognized by dune-release. I think it would be best to at least recognized any capitalization of readme.*. Same for the other usual files.

Can't publish when changelog doesn't have the precise format.

My changelog has a title at the beginning, which makes dune-release completely bork in a way that I can't bypass with the command line:

% dune-release publish distrib --dist-ver 0.4
fatal: Needed a single revision
dune-release: [ERROR] CHANGES.md lists 'Change' as the latest release, but no
                      corresponding tag has been found in the repository.
                      Did you forget to call 'dune-release tag' ?

My changelog: https://github.com/Drup/tyre/blob/master/CHANGES.md

Latest version of dune and dune-release.

opam lint fails with version 0.2.0

I get the following error with the latest release and opam 1.2.2:

Cloning into '_build/gsl-1.22.0.build'...
done.
Wrote archive _build/gsl-1.22.0.tbz

Linting distrib in _build/gsl-1.22.0
[FAIL] lint opam file gsl.opam:
       opam lint --warn=-21-32-48 -s messages:
       opam: unknown option `--warn'.
       Usage: opam lint [OPTION]... [FILE]
       Try `opam lint --help' or `opam --help' for more information.
[FAIL] lint _build/gsl-1.22.0 failure: 1 errors.

Building package in _build/gsl-1.22.0
[ OK ] package builds

Running package tests in _build/gsl-1.22.0
[ OK ] package tests

Distribution for gsl 1.22.0
Commit 55284ea320f1721e3e659d5814b7e3ce702e345b
Archive _build/gsl-1.22.0.tbz
dune-release: [ERROR] run ['dune-release' 'distrib' '--verbosity' 'warning']:
                      exited with 1

Any suggestions for a workaround until this is fixed?

Bug upgrading .dune -> .config/dune

When upgrading from a previous version, the .dune directory is moved to .config/dune, i.e. we end up with .config/dune/.dune. This is probably not intended, the .dune should be .config/dune rather than be contained in it. This issue was mistakenly raised here first: ocaml/dune#1055

Multi-package workings unclear

When I try to release ocaml-zmq which has zmq, zmq-lwt and zmq-async as subpackages it works in a way I would not expect.

When I do dune-release distrib it generates one single tarball. This is a bit surprising, but since it includes all the source for all subpackages this might be the right thing to do.

But when I do dune-release opam pkg -p zmq,zmq-async,zmq-lwt (a bit strange I have to mention all of them) it does

Wrote opam package _build/zmq.5.0.1
Wrote opam package _build/zmq.5.0.1
Wrote opam package _build/zmq.5.0.1

And the file it generates is just derived from zmq.opam.

Get opam description from opam file

With opam 2, we can store the description inside the opam file directly. It'd be nice if dune-release supported that, so that we don't have to write *.descr files in addition to *.opam files

HTTP 401 when retrieving releases

I get the following HTTP 401 error when trying to publish my package. I generated a token the first time, with an access to public_repo only as requested by dune-release, and I had this error. Then any new try does not ask for a token anymore and just fails with the same error.

dune-release: [EXEC:9383] ['curl' '-s' '-S' '-K' '-' '-D' '-' '--data'
                           '{ "tag_name" : "v1.1.0", "body" : "CHANGES:\n\n* Added a Format module to help generate formatted content for forms\n * Migration from oasis to dune\n * Compatibility with OCaml 4.07\n" }'
                           'https://api.github.com/repos/yannham/mechaml/releases']
dune-release: [ERROR] Could not find release id in response:
                      HTTP/1.1 401 Unauthorized
                      Server: GitHub.com
                      Date: Mon, 22 Oct 2018 10:46:41 GMT
                      Content-Type: application/json;
                      charset=utf-8
                      Content-Length: 93
                      Status: 401 Unauthorized
                      X-GitHub-Media-Type: github.v3;
                      format=json
                      X-RateLimit-Limit: 60
                      X-RateLimit-Remaining: 56
                      X-RateLimit-Reset:
                      1540207742
                      Access-Control-Expose-Headers: ETag, Link, Retry-After,
                      X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
                      X-RateLimit-Reset, X-OAuth-Scopes,
                      X-Accepted-OAuth-Scopes,
                      X-Poll-Interval
                      Access-Control-Allow-Origin:
                      *
                      Strict-Transport-Security: max-age=31536000;
                      includeSubdomains; preload
                      X-Frame-Options: deny
                      X-Content-Type-Options: nosniff
                      X-XSS-Protection: 1; mode=block
                      Referrer-Policy: origin-when-cross-origin,
                      strict-origin-when-cross-origin
                      Content-Security-Policy: default-src
                      'none'
                      X-GitHub-Request-Id:
                      656A:7C63:21A2F73:52B44EB:5BCDAA90
                      
                      {
                        "message": "Bad credentials",
                        "documentation_url":
                      "https://developer.github.com/v3"
                      }
                      .

Extract synopsis from .opam file

With opam 2, the synopsis may be in the .opam file and no longer in a .descr one. dune-release should try to get it from the former before trying to resort to the file README.md.

Re-add the notion of publication delegate

Currently dune-release can only release on GitHub so will work only for GitHub packages. This is not great for those who host their packages on a different sytem.

The topkg notion of delegate should be re-added.

publishing docs for multiple packages

For example, ocaml-decoders has:

  • decoders.opam
  • decoders-ezjsonm.opam
  • decoders-yojson.opam

dune-release publish doc only generates documentation for decoders.

I'd like to publish all the docs to the same gh-pages site, so the index lists all the packages together, and cross-package links work. Is that possible?

Great tool by the way :)

Output of `dune-release publish doc --dry-run -vv`
dune-release: [INFO] dune-release 1.0.1 running
dune-release: [EXEC:78443] ['git' 'rev-parse' '--git-dir']
dune-release: [EXEC:78444] ['git' '--git-dir' '.git' '--work-tree' './'
                            'describe' '--always' 'HEAD']
-: must exists _build/decoders-0.1.0-2-g4411bb5.tbz
=> chdir _build/
   [in _build]
=> rmdir _build/decoders-0.1.0-2-g4411bb5
-: exec: tar -xjf decoders-0.1.0-2-g4411bb5.tbz
-: chdir _build/decoders-0.1.0-2-g4411bb5
-: exec: dune build -p decoders @doc
-: exists _build/default/_doc/_html
dune-release: [INFO] Parsing opam file decoders.opam
dune-release: [EXEC:78445] ['git' 'rev-parse' '--git-dir']
dune-release: [EXEC:78446] ['git' '--git-dir' '.git' '--work-tree' './'
                            'describe' '--always' 'HEAD']
dune-release: [EXEC:78447] ['git' 'rev-parse' '--git-dir']
-: exec: git --git-dir .git fetch [email protected]:${user}/${repo}.git gh-pages
-: exec: git --git-dir .git rev-parse FETCH_HEAD
-: exec: git --git-dir .git branch -f gh-pages ${fetch_head}
=> rmdir _build/decoders-0.1.0-2-g4411bb5/_build/gh-pages
dune-release: [EXEC:78448] ['git' 'rev-parse' '--git-dir']
=> exec:
     git --git-dir .git clone --local .git   _build/decoders-0.1.0-2-g4411bb5/_build/gh-pages
dune-release: [EXEC:78449] ['git' '--git-dir' '.git' 'clone' '--local' '.git'
                            '_build/decoders-0.1.0-2-g4411bb5/_build/gh-pages']
=> chdir _build/decoders-0.1.0-2-g4411bb5/_build/gh-pages
dune-release: [EXEC:78452] ['git' 'rev-parse' '--git-dir']
   [in _build/decoders-0.1.0-2-g4411bb5/_build/gh-pages]
-: exec: git --git-dir .git checkout gh-pages
-: rmdir _build/decoders-0.1.0-2-g4411bb5/_build/gh-pages/${dir}
-: exec:
     cp -R   /Users/mattjbray/code/mattjbray/ocaml-decoders/_build/decoders-0.1.0-2-g4411bb5/_build/default/_doc/_html/   ${dir}
-: exec: git --git-dir .git add ${dir}
-: exec: git --git-dir .git commit -m Update decoders doc to 0.1.0-2-g4411bb5.
-: exec: git --git-dir .git push
-: exec:
     git --git-dir .git push [email protected]:${user}/${repo}.git gh-pages:gh-pages
-: rmdir _build/decoders-0.1.0-2-g4411bb5/_build/gh-pages
Published documentation for decoders 0.1.0-2-g4411bb5 in directory ${dir} of
gh-pages branch

description and synopsis

not sure whether this is the right place, but opam2 now supports to integrate a synopsis and descr field in the opam file. topkg (and dune-release) have automation in place to extract a descr file from README.md -- what is the recommended way to dune-release-opam2 packages (and where to put descr)? since now lots of repositories contain multiple opam files, should they store descr individually? or should it still be extracted from README - downside being that the descr/synopsis may be different for the different opam packages (see e.g. the mirage/mirage repository, where the description for mirage-types and mirage should be different). so far, I manually added descr and synopsis to opam files at release time, which is tedious.

OTOH, having to manually take care of both opam and README.md is tedious as well (and will lead to out-of-sync descriptions).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.