This concludes the initial migration of our translation to the new v3
structure.
We no longer publish a `@freesewing/i18n` package with the translations
for our project, instead each design has a `i18n` names export that
holds the strings for that design.
The plugins still need to be ported, and `plugin-i18n` needs to be
adapted, but the main work is done.
This wraps up the initial work on a new annotations plugin that replaces
other plugins that provide annotations. As a result, the following
plugins are now no longer available:
- plugin-banner
- plugin-bartack
- plugin-buttons
- plugin-cutonfold
- plugin-dimension
- plugin-grainine
- plugin-logo
- plugin-notches
- plugin-scalebox
- plugin-title
The new plugin-annotations package provides all these plugins used to
provide. In addition, it also includes the following new macros:
- bannerbox
- pleat
- sewTogether
We no longer need a dedicated examples design.
It was used to showcase examples in the dev docs.
But the new dev site Example component will use the actual example code
to generate the example. Which is much better since we don't have to
keep the example code and code of the the example design in sync.
These are some changes in the way the monorepo is structured,
that are aimed at making it easier to get started.
There are two important changes:
**Multiple workspaces**
We had a yarn workspaces setup at `packages/*`. But our monorepo has
grown to 92 packages which can be overwhelming for people not familiar
with the package names.
To remedy this, I've split it into 4 different workspaces:
- `designs/*`: Holds FreeSewing designs (think patterns)
- `plugins/*`: Holds FreeSewing plugins
- `packages/*`: Holds other packages published on NPM
- `sites/*`: Holds software that is not published as an NPM package,
such as our various websites and backend API
This should make it easier to find things, and to answer questions like
*where do I find the code for the plugins*.
**Updated reconfigure script to handle build order**
One problem when bootstrapping the repo is inter-dependencies between
packages. For example, building a pattern will only work once
`plugin-bundle` is built. Which will only work once all plugins in the
bundle or built. And that will only work when `core` is built, and so
on.
This can be frustrating for new users as `yarn buildall` will fail.
And it gets overlooked by seasoned devs because they're likely to have
every package built in their repo so this issue doesn't concern them.
To remedy this, we now have a `config/build-order.mjs` file and the
updated `/scripts/reconfigure.mjs` script will enforce the build order
so that things *just work*.