1
0
Fork 0
freesewing/sites/svgtopdf/README.md
Joost De Cock e4035b2509 chore: Re-structure workspaces, enforce build order
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*.
2022-06-16 17:11:31 +02:00

3.2 KiB

FreeSewing

Chat with us on Discord Follow @freesewing_org on Twitter Follow @freesewing_org on Twitter Become a FreeSewing Patron

What am I looking at? 🤔

This repository holds a stand-alone backend API to turn SVG patterns into (tiled) PDFs.

Our end-goal is to handle this client-side, and have freesewing render to PDF directly. However, given the complexities of the PDF format, this is non-trivial, so for the time being we handle this with this backend.

About FreeSewing 💀

Where the world of makers and developers collide, that's where you'll find FreeSewing.

Our core library is a batteries-included toolbox for parametric design of sewing patterns. It's a modular system (check our list of plugins and getting started is as simple as:

npm init freesewing-pattern

We also have a template repository if you prefer to start that way.

Developer documentation is maintained on freesewing.dev and we also have a #development-help channel on Discord.

If you're a maker, checkout freesewing.org where you can generate our sewing patterns adapted to your measurements.

Support FreeSewing: Become a patron 🥰

FreeSewing is an open source project run by a community, and financially supported by our patrons.

If you feel what we do is worthwhile, you too should become a patron.

License: MIT 🤓

© Joost De Cock.
See the license file for details.

Where to get help 🤯

Our chat rooms on Discord are the best place to ask questions, share your feedback, or just hang out.

If you want to report a problem, please create an issue.