Every few months, the principals of the Racket world meet for a day to
discuss the state and near (and, occasionally, distant) future of the
Racket world. We met on the weekend of December 5 in Dunstable, MA,
and here is the list of major points we discussed.
1. Contributions and Software Freedom Conservancy
Our application to the Software Freedom Conservancy, which would
help us to accept tax-deductible contributions, is still pending.
Meanwhile, we will prepare PLT Design Inc. to accept income, so
that we can also support other means of (non-tax-deductible)
contributions and to manage RacketCon.
2. Package maintainers
When package creators become unable to continue as maintainers,
sometimes a package name needs to be reallocated to a repository
where a new maintainer has control. In his role as the curator at
pkgs.racket-lang.org, Jay has been reallocating package names as
necessary, but we'd like to make the process more transparent. Jay
will start announcing these transitions on the dev list. Longer
term,
pkgs.racket-lang.org should provide an interface for these
announcements, discussion, and history.
We'd also like to build up a better culture and tool support for
documenting a library's internals. We need to discuss this more, but
we have one idea for now: code walk-throughs in the form of video
recordings. Jay will recruit presenters and arrange recordings.
3. Backwards compatibility and adding library exports
Although our general policy on package updates is that they should
be backward-compatible, we make a significant exception for the
case of adding exports to an existing library. Adding an export
mostly works out, but it's not backward-compatible, because it can
create conflicts in existing code.
Recent technical changes have lessened the effect of conflicts, and
we can take one more technical step: make import conflicts an error
only if the conflicting identifier is actually used. Matthew will
try that change.
At the same time, we'd like to refine the policy on adding exports:
it's ok to add a new export as long as it doesn't create a conflict
for any code that is registered on
pkgs.racket-lang.org. To support
this policy, Robby will set up snapshot-based package build, which
will complement the release-based package build at
pkg-build.racket-lang.org, and Jay will update
pkgs.racket-lang.org
to have a new column that shows results with the snapshot.
4. Release-time testing
Our release testing process seems to have gotten slower as
release-time testers struggle to find time for their checklist
items. Also, the process of posting the checklist and responses to
the dev list is not working well for people who try to keep track
of the release state.
To address the latter problem, we're moving the checklist to a wiki
page. To help with the former problem, we're expanding the
checklist to contain more information about how each check is
performed, so that others who have time around a given release will
be able to help check off items.
A related issue is that examples in the documentation sometimes
fail in a way that indicates a bug. By having that failure be a
documentation-build failure, instead of rendered as an error
message in the documentation, we can avoid some errors in a
release. Matthew will add a replacement for `examples` where forms
that are intended to be rendered as errors must be explicitly
marked as such, while other errors trigger a document failure.
5.
docs.racket-lang.org
Currently,
docs.racket-lang.org shows only documentation that's
included in the distribution for the most recent release. The plan
has always been to push documentation for package builds there, so
that documentation for all packages is searchable in a single place.
Matthew will make that switch soon.