Skip to content

Intern 5 development #1095

Open
Open
@jason0x43

Description

@jason0x43

The list of updates planned for Intern 5 is still being determined, but a few things are already known or in progress. As this is a major release there will be a few breaking changes, but we hope to keep those to a manageable level.

You can track Intern 5's development on the project board.

Simplifying development

Intern’s development has been relatively slow for the last few months. A big part of that is maintenance overhead and organization. Intern has more projects than it has people regularly working on it, and keeping up with them was slowing down the development process. A big behind-the-scenes part of the next release therefore involves simplifying the development and maintenance process. We want any potential contributors, including ourselves, to be able to easily setup a full Intern dev environment, make changes, and run tests.

One part of this is consolidating the code base. The core Intern projects (Leadfoot, Dig Dug, and the cli) are all being pulled back into the main Intern repository. These three projects were originally part of a single code base, and have always been closely dependent. Having them together makes development and testing new features much simpler. The non-Intern repositories are being deprecated; while they’ll still receive bug fixes, they may not receive new features, and any new feature requests should come through Intern’s issue tracker. That’s not to say that standalone Dig Dug and Leadfoot are necessarily finished, but future releases would be generated from the code in the Intern repository rather than from separate repositories.

New features

There are a lot of things we want to do with Intern, much more than will fit into the next release (well, assuming we want to actually get the next release out the door). A discovery process is ongoing (take a look at the list in #1080, and feel free to make suggestions!). A few of the more significant features we plan to include are:

Other big features that may make it in include:

Once we’ve finished the discovery process we’ll have a firmer idea of what new features will be included.

Other improvements

Along with adding new features, we also want to improve Intern’s existing functionality and fix some annoyances.

Breaking changes

As we work to improve Intern, some of the changes may not always be backwards compatible. Breaking changes will include:

  • Changed export paths. As part of cleaning up the API, some module locations will change.
  • Changed configuration options. Some options will be renamed or restructured to improve configuration consistency. In general we'll deprecate existing config options rather than removing them entirely.
  • Switch to native Promises. Async APIs will switch from custom Task and CancellablePromise classes to native Promises.

Metadata

Metadata

Assignees

No one assigned

    Labels

    informationIssue is purely informational

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions