Skip to content

Commit

Permalink
Introduce the OCaml Changelog (#1109)
Browse files Browse the repository at this point in the history
This commit introduces the OCaml Changelog - a feed of the newest releases and
feature highlights of the OCaml Compiler, OCaml Platform and other official
projects including Ppxlib and Omd.

It is served at https://ocaml.org/changelog.

The goal of the Changelog is to offer a page where OCaml developers can stay up
to date with the latest official releases, and most importantly quickly learn
about the most important new features available and how to use them.

At this stage, the OCaml Changelog is an experiment. We're merging as such to
facilitate communication with everyone involved, especially the maintainers of
the projects featured in the Changelog.

In particular, if we decide on supporting the OCaml Changelog in the long term,
we'll need to find a good release process with the maintainers of the tools that
are featured in the Changelog, to make sure that every release gets an
announcement and that important features are highlighted.

We have talked about this with several maintainers, but at this point, we have
not agreed on a definitive process. While the Changelog remains in an
experimental stage, for demonstration purposes, we intend to take on the
workload of creating the changelog entries and working with the maintainers to
write the announcements, until we've built a consensus on the final process.

Note that the introduction of the Changelog impacts the content that is
available on the OCaml Blog.

The previous News section, which contained the newsletters (Multicore and
Compiler), but also releases and articles from the OCaml Platform Blog, now only
contains newsletters. The Platform Blog articles are now part of the OCaml
Planet feed (the aggregate of community blog posts), and the releases are part
of the OCaml Changelog.

The commit also upgrades the opam-repository to
9cf27a6683dc4e56ccf7e35c008198828bd5c267

---------

Co-authored-by: Sabine Schmaltz <sabine@tarides.com>
  • Loading branch information
tmattio and sabine authored Apr 22, 2023
1 parent 345d38b commit 2cea328
Show file tree
Hide file tree
Showing 741 changed files with 16,013 additions and 1,630 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
ocaml-compiler: ${{ matrix.ocaml-compiler }}
dune-cache: ${{ matrix.os != 'macos-latest' }}
opam-repositories: |
pin: git+https://github.com/ocaml/opam-repository#b457e9f3d6
pin: git+https://github.com/ocaml/opam-repository#9cf27a6683dc4e56ccf7e35c008198828bd5c267
- name: Install system dependencies (Linux)
run: sudo apt-get install libev-dev libonig-dev
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dummy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ jobs:
with:
ocaml-compiler: ocaml-base-compiler.4.14.1
opam-repositories: |
pin: git+https://github.com/ocaml/opam-repository#b457e9f3d6
pin: git+https://github.com/ocaml/opam-repository#9cf27a6683dc4e56ccf7e35c008198828bd5c267
- run: git rev-parse HEAD
8 changes: 4 additions & 4 deletions .github/workflows/scrape.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
ocaml-compiler: ${{ matrix.ocaml-compiler }}
dune-cache: ${{ matrix.os != 'macos-latest' }}
opam-repositories: |
pin: git+https://github.com/ocaml/opam-repository#b457e9f3d6
pin: git+https://github.com/ocaml/opam-repository#9cf27a6683dc4e56ccf7e35c008198828bd5c267
- name: Install opam dependencies
run: opam install --deps-only --with-test .
Expand All @@ -42,9 +42,9 @@ jobs:
- name: Run scrapers
run: |
opam exec -- dune exec tool/ood-gen/bin/scrape.exe rss
opam exec -- dune exec tool/ood-gen/bin/scrape.exe planet
opam exec -- dune exec tool/ood-gen/bin/watch_scrape.exe > data/watch.yml
opam exec -- dune build src/ocamlorg_data/rss.ml
opam exec -- dune build src/ocamlorg_data/planet.ml
opam exec -- dune build src/ocamlorg_data/watch.ml
- name: Create Pull Request
Expand All @@ -54,4 +54,4 @@ jobs:
add-paths: |
asset/feed.xml
data/watch.yml
data/rss/*/*.md
data/planet/*/*.md
16 changes: 16 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ Here's a list of the content that is community driven and how you can contribute
- [The OCaml books](#content-book)
- [The community events](#content-event)
- [The featured packages](#content-package)
- [The OCaml Changelog](#content-package)

### <a name="content-blog"></a> Add an RSS feed to the blog

Expand Down Expand Up @@ -109,6 +110,21 @@ You can add a new community event by creating a new markdown file in [data/meetu
To update the list of Featured Packages in the Packages page, you can update [data/packages.yml](data/packages.yml)

### <a name="ocaml-changelog"></a> OCaml Changelog

The [OCaml Changelog](https://ocaml.org/changelog) is a feed of the latest releases and feature highlights for official OCaml projects. As of today, it features the following projects:

- [The OCaml compiler](https://github.com/ocaml/ocaml)
- [The OCaml Platform tools](https://ocaml.org/docs/platform)
- [Ppxlib](https://github.com/ocaml-ppx/ppxlib)
- [OMP](https://github.com/ocaml-ppx/ocaml-migrate-parsetree) (that has been deprecated in favour of Ppxlib)

Before a release of the above tools land on the opam-repository, the release manager of the project opens a Pull Request on OCaml.org with an announcement for the release.

The announcement is proofread by the OCaml.org team, who will also suggest highlighting features from the release.

To contribute to a new release announcement or feature highlight, add a markdown file in `data/changelog/`.

## Git and GitHub workflow

The preferred workflow for contributing to a repository is to fork the main repository on GitHub, clone, and develop on a new branch.
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ FROM ocaml/opam:alpine-3.17-ocaml-4.14 as build
RUN sudo apk update && sudo apk add --update libev-dev openssl-dev gmp-dev oniguruma-dev inotify-tools

# Branch freeze was opam-repo HEAD at the time of commit
RUN cd opam-repository && git checkout -b freeze b457e9f3d6 && opam update
RUN cd opam-repository && git pull origin 9cf27a6683dc4e56ccf7e35c008198828bd5c267 && opam update

WORKDIR /home/opam

Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ deps: create_switch ## Install development dependencies

.PHONY: create_switch
create_switch: ## Create switch and pinned opam repo
opam switch create . 4.14.1 --no-install --repos pin=git+https://github.com/ocaml/opam-repository#b457e9f3d6
opam switch create . 4.14.1 --no-install --repos pin=git+https://github.com/ocaml/opam-repository#9cf27a6683dc4e56ccf7e35c008198828bd5c267

.PHONY: switch
switch: deps ## Create an opam switch and install development dependencies
Expand Down Expand Up @@ -58,7 +58,7 @@ utop: ## Run a REPL and link with the project's libraries

.PHONY: scrape
scrape: ## Generate the po files
opam exec -- dune exec --root . tool/ood-gen/bin/scrape.exe rss
opam exec -- dune exec --root . tool/ood-gen/bin/scrape.exe planet
opam exec -- dune exec --root . tool/ood-gen/bin/watch_scrape.exe > data/watch.yml

.PHONY: docker
Expand Down
17 changes: 17 additions & 0 deletions data/changelog/dune-release/2018-04-14-dune-release-0.1.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
title: Dune-release 0.1.0
date: "2018-04-14"
tags: [dune-release, platform, release]
changelog: |
---

Initial release.

Import some code from [topkg](http://erratique.ch/software/topkg).

- Use of `Astring`, `Logs`, `Fpath` and`Bos` instead of custom
re-implementations;
- Remove the IPC layer which is used between `topkg` and `topkg-care`;
- Bundle everything as a single binary;
- Assume that the package is built using [dune](https://github.com/ocaml/dune);
- Do not read/need a `pkg/pkg.ml` file.
21 changes: 21 additions & 0 deletions data/changelog/dune-release/2018-06-09-dune-release-0.2.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
title: Dune-release 0.2.0
date: "2018-06-09"
tags: [dune-release, platform, release]
changelog: |
- Remove opam lint warnings for 1.2 files (#2, @samoht)
- Add a `--keep-v` option to not drop `v` at the beginning of version
numbers (#6, @samoht)
- Pass `-p <package>` to jbuilder (#8, @diml)
- Fix a bug in `Distrib.write_subst` which could cause an infinite loop
(#10, @diml)
- Add a `--dry-run` option to avoid side-effects for all commands (@samoht)
- Rewrite issues numbers in changelog to point to the right repository
(#13, @samoht)
- Stop force pushing tags to `origin`. Instead, just force push the release
tag directly to the `dev-repo` repository (@samoht)
- Fix publishing distribution when the the tag to publish is not the repository
HEAD (#4, @samoht)
- Do not depend on `opam-publish` anymore. Use configuration files stored
in `~/.dune` to parametrise the publishing workflow. (@samoht)
---
20 changes: 20 additions & 0 deletions data/changelog/dune-release/2018-07-10-dune-release-0.3.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
title: Dune-release 0.3.0
date: "2018-07-10"
tags: [dune-release, platform, release]
changelog: |
- Store config files in `~/.config/dune/` instead of `~/.dune`
to match what `dune` is doing (#27, @samoht)
- Support opam 1.2.2 when linting (#29, @samoht)
- Use `-p <pkg>` instead of `-n <pkg>` to follow dune convention
(#30, #42, @samoht)
- Default to `nano` if the EDITOR environment variable is not set. (#32, @avsm)
- Fix location of documentation when `odoc` creates an `_html` subdirectory
(#34, @samoht)
- Remove the browse command (#36, @samoht)
- Re-add the publish delegatation mechanism to allow non-GitHub users to
publish packages (see `dune-release help delegate`) (#37, @samoht)
- Fix dropping of `v` at the beginning of version numbers in `dune-release opam`
(#40, @let-def)
- Add basic token validation (#40, @let-def)
---
21 changes: 21 additions & 0 deletions data/changelog/dune-release/2018-09-23-dune-release-1.0.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
title: Dune-release 1.0.0
date: "2018-09-23"
tags: [dune-release, platform, release]
changelog: |
- Determine opam-repository fork user from URI (#64, @NathanReb and @diml)
- All subcommands now support multiple package names (@samoht)
- Do not remove `Makefile` from the distribution archives (#71, @samoht)
- Do not duplicate version strings in opam file (#72, @samoht)
- Fix configuration file upgrade from 0.2 (#55, @samoht)
- Add a `--tag` option to select the release tag (@samoht)
- Add a `--version` option to select the release version (@samoht)
- Fix `--keep-v` (#70, @samoht)
- Make `dune-release <OPTIONS>` a shorchut to `dune-release bistro <OPTIONS>`
(#75, @samoht)
- Add a --no-open option to not open a browser after creating a new P
(#79, @samoht)
- Control `--keep-v` and `--no-auto-open` via options in the config file
(#79, @samoht)
- Be flexible with file names (#86 and #20, @anuragsoni)
---
7 changes: 7 additions & 0 deletions data/changelog/dune-release/2018-09-24-dune-release-1.0.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: Dune-release 1.0.1
date: "2018-09-24"
tags: [dune-release, platform, release]
changelog: |
- Fix opam2 format upgrade when submitting a PR (#91, @samoht)
---
18 changes: 18 additions & 0 deletions data/changelog/dune-release/2018-10-17-dune-release-1.1.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
title: Dune-release 1.1.0
date: "2018-10-17"
tags: [dune-release, platform, release]
changelog: |
- Remove the status and log commands (#95, @samoht)
- Fix `dune-release publish doc` when using multiple packages (#96, @samoht)
- Fix inferred package name when reading `dune-project` files (#104. @samoht)
- Add .ps and .eps files to default files excluded from watermarking
(backport of dbuenzli/topkg@6cf1eae)
- Fix distribution uri when homepage is using github.io (#102, @samoht)
- `dune-release lint` now checks that a description and a synopsis exist
in opam2 files (#101, @samoht)
- Add a more explicit error message if `git checkout` fails in the local
opam-repository (#98, @samoht)
- Do not create an extra `_html` folder when publishing docs on Linux
(#94, @anuragsoni and @samoht)
---
12 changes: 12 additions & 0 deletions data/changelog/dune-release/2019-04-09-dune-release-1.2.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: Dune-release 1.2.0
date: "2019-04-09"
tags: [dune-release, platform, release]
changelog: |
- Remove assert false in favor of error message. (#125, @ejgallego)
- Embed a 'version: "$release-version"' in each opam file of the current
directory to get reproducible releases (#128, #129, @hannesm)
- Generate sha256 and sha512 checksums for release (#131, @hannesm)
- Grammar fixes (#132, @anmonteiro)
- Handle doc fields with no trailing slash (#133, @yomimono)
---
18 changes: 18 additions & 0 deletions data/changelog/dune-release/2019-05-30-dune-release-1.3.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
title: Dune-release 1.3.0
date: "2019-05-30"
tags: [dune-release, platform, release]
changelog: |
- Add confirmation prompts in some commands. (#144, #146, @NathanReb)
- Use github returned archive URL instead of guessing it. Fixes a bug
when releasing a version with URL incompatible characters to github.
(#143, @NathanReb)
- Add logs to better describe commands behaviour. (#141, #137, #135, #150,
#153, @NathanReb)
- Fix a bug when publishing documentation to a repo for the first time
(#136, @NathanReb)
- Allow to submit package to a different opam-repository hosted on github.
(#140, #152, @NathanReb)
- Use `dune subst` for watermarking. (#147, @NathanReb)
- Fix linting step so it checks for `CHANGES`, `LICENSE` and `README` again
---
9 changes: 9 additions & 0 deletions data/changelog/dune-release/2019-06-13-dune-release-1.3.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: Dune-release 1.3.1
date: "2019-06-13"
tags: [dune-release, platform, release]
changelog: |
- Fix a bug in documentation publication where under certain circumstances the
doc would be published in a `_html` folder instead of being published at the
root of `gh-pages` (#157, @NathanReb)
---
15 changes: 15 additions & 0 deletions data/changelog/dune-release/2019-07-12-dune-release-1.3.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
title: Dune-release 1.3.2
date: "2019-07-12"
tags: [dune-release, platform, release]
changelog: |
### Fixed
- Fix a bug where file presence lint check wouldn't be run for `CHANGES`,
`LICENSE` and `README` (#161, @NathanReb)
### Changed
- Add headers to better distinguish various `dune-release` logs such as user
prompts and informational logs
---
12 changes: 12 additions & 0 deletions data/changelog/dune-release/2019-09-30-dune-release-1.3.3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: Dune-release 1.3.3
date: "2019-09-30"
tags: [dune-release, platform, release]
changelog: |
### Fixed
- Fix a bug where `opam submit` would fail if the opam files had no description
(#165, @NathanReb)
- Fix a bug where opam files could be improperly tempered with while building
the distribution tarball (#168, @NathanReb)
---
51 changes: 51 additions & 0 deletions data/changelog/dune-release/2020-07-14-dune-release-1.4.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
title: Dune-release 1.4.0
date: "2020-07-14"
tags: [dune-release, platform, release]
changelog: |
### Added
- Add a `dune-release config` subcommand to display and edit the global
configuration (#220, @NathanReb).
- Add command `delegate-info` to print information needed by external
release scripts (#221, @pitag-ha)
- Use Curly instead of Cmd to interact with github (#202, @gpetiot)
- Add `x-commit-hash` field to the opam file when releasing (#224, @gpetiot)
- Add support for common alternative names for the license and
ChangeLog file (#204, @paurkedal)
### Changed
- Command `tag`: improve error and log messages by comparing the provided
commit with the commit correspondent to the provided tag (#226, @pitag-ha)
- Error logs: when an external command fails, include its error message in
the error message posted by `dune-release` (#231, @pitag-ha)
- Error log formatting: avoid unnecessary line-breaks; indent only slightly
in multi-lines (#234, @pitag-ha)
- Linting step of `dune-release distrib` does not fail when opam's `doc` field
is missing. Do not try to generate nor publish the documentation when opam's
`doc` field is missing. (#235, @gpetiot)
### Deprecated
- Deprecate opam 1.x (#195, @gpetiot)
### Fixed
- Separate packages names by spaces in `publish` logs (#171, @hannesm)
- Fix uncaught exceptions in distrib subcommand and replace them with proper
error messages (#176, @gpetiot)
- Use the 'user' field in the configuration before inferring it from repo URI
and handles HTTPS URIs (#183, @gpetiot)
- Ignore backup files when looking for README, CHANGES and LICENSE files
(#194, @gpetiot)
- Do not echo input characters when reading token (#199, @gpetiot)
- Improve the output of VCS command errors (#193, @gpetiot)
- Better error handling when checking opam version (#195, @gpetiot)
- Do not write 'version' and 'name' fields in opam file (#200, @gpetiot)
- Use Yojson to parse github json response and avoid parsing bugs.
(#177, @gpetiot)
- The `git` command used in `publish doc` should check `DUNE_RELEASE_GIT` (even
if deprecated) before `PATH`. (#242, @gpetiot)
- Adapt the docs to the removal of the `log` subcommand (#196, @gpetiot)
---
Loading

0 comments on commit 2cea328

Please sign in to comment.