You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The major (or even sole) focus for 1.0.0-M2 will be to dramatically shrink the public API surface to ensure longterm binary-compatibility is feasible for the 1.x lifespan.
Many APIs are public "by accident", since it is the default access and earlier years did not put a major emphasis on bincompat anyway (it was an unrealistic goal as long as very large new sets of functionality were introduced). By now Laika has matured in a way that it makes sense to address these historic issues now.
The main public APIs that need to remain are:
The core APIs to configure and run a transformation.
The main extension APIs (everything reachable from the ExtensionBundle type).
The theme support and Helium configuration and types reachable from there.
The APIs of the included micro-libs, mainly parser combinators and config/hocon support.
The API entry point to launch a preview server.
The keys for settings and tasks in the sbt plugin as well as relevant helpers.
For everything else package-private should become the new default.
This will most likely leave behind some skeleton packages with only a few public types left. These will be "re-homed" later, but renaming and repackaging in general is left for the final milestone to keep the 0.19 maintenance branch largely in sync as long as possible.
To avoid a mega-PR the work will be split into the following sub-tasks (PRs will be linked here as soon as they are created):
The major (or even sole) focus for
1.0.0-M2
will be to dramatically shrink the public API surface to ensure longterm binary-compatibility is feasible for the 1.x lifespan.Many APIs are public "by accident", since it is the default access and earlier years did not put a major emphasis on bincompat anyway (it was an unrealistic goal as long as very large new sets of functionality were introduced). By now Laika has matured in a way that it makes sense to address these historic issues now.
The main public APIs that need to remain are:
ExtensionBundle
type).For everything else package-private should become the new default.
This will most likely leave behind some skeleton packages with only a few public types left. These will be "re-homed" later, but renaming and repackaging in general is left for the final milestone to keep the 0.19 maintenance branch largely in sync as long as possible.
To avoid a mega-PR the work will be split into the following sub-tasks (PRs will be linked here as soon as they are created):
packages
laika.api
,laika.ast
,laika.format
,laika.factory
,laika.time
,laika.collection
packages
laika.bundle
,laika.directive
,laika.parse.directive
packages
laika.config
,laika.parse.hocon
packages
laika.parse
,laika.parse.combinator
,laika.parse.text
,laika.parse.markup
package
laika.rewrite
,laika.render
packages
laika.markdown
,laika.rst
packages
laika.parse.code
,laika.parse.css
,laika.parse.uri
laika-io
User APIs & Runtime - shrink public API surface in laika.io.* #465package
laika.io
packages
laika.helium
,laika.theme
packages
laika.render.epub
,laika.render.pdf
packages
laika.sbt
,laika.preview
The text was updated successfully, but these errors were encountered: