1
0
Fork 0

Merge pull request 'merge upstream into my fork' (#1) from freesewing/freesewing:develop into develop

Reviewed-on: https://codeberg.org/jpmunic/freesewing/pulls/1
This commit is contained in:
jpmunic 2025-05-05 00:44:55 +00:00
commit dd18c39676
14685 changed files with 12556 additions and 555116 deletions

18
.gitignore vendored
View file

@ -35,6 +35,17 @@ sites/*/yarn.lock
# Docusaurus cache
.docusaurus
# Sites get some files from org via the reconfigure script
sites/studio/postcss.config.js
sites/studio/babel.config.mjs
sites/studio/plugins
sites/studio/src/css
sites/studio/designs
sites/studio/docs
sites/studio/src
sites/studio/scripts
sites/studio/static
# Sites prebuild artifacts
sites/*/public/locales/*/*.json
!sites/sde/public/locales/*/*.json
@ -44,6 +55,9 @@ packages/new-design/shared/public/locales/*/*.json
packages/new-design/shared/.gitignore
packages/new-design/lib/banner.mjs
sites/*/public/img/og/*
sites/org/src/lib/i18n.mjs
sites/org/authors.json
sites/org/src/lib/designinfo.mjs
# Org prebuild artifacts
sites/org/src/lib/designs.mjs
@ -80,6 +94,10 @@ sites/dev/public/mstile-150x150.png
sites/dev/public/safari-pinned-tab.svg
sites/dev/public/site.webmanifest
# react docs
packages/react/docs
# Node dependencies
node_modules

View file

@ -31,6 +31,19 @@
- Neck ties no longer shown to be cut on fold
- Band tie locks in duo colours when `options.crossBackTies` is true (fixes incorrect notch placements)
### plugin-annotations
#### Fixed
- Fixed incorrect anchor point of the logo due to share pathstring (#202)
### react
#### Fixed
- Fixed issues with the pattern export feature in the Editor (#218)
- Added Jane to the Linedrawing component (#211)
## 4.0.0 (2024-04-01)
@ -198,18 +211,18 @@
- The `@freesewing/i18n` package holds translations in English for where they are needed
### studio
#### Added
- Added `@freesewing/studio`, our new development environment
### react
#### Added
- The `@freesewing/react` package holds shared components, hooks, and context for our React-based frontends
### studio
#### Added
- Added `@freesewing/studio`, our new development environment
### utils
#### Added

View file

@ -50,12 +50,10 @@ We publish a lot of JavaScript packages on NPM. You can find the full list [in t
This file is mostly geared towards code contributors, but there's plenty of other ways you can contribute.
As it happens, we keep a list of suggestions at: https://freesewing.dev/howtos/ways-to-contribute
### Your first contribution
Unsure where to begin contributing to FreeSewing?
You can start by looking through the issues labeled [good first issue](https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3A%22%F0%9F%91%8D+good+first+issue%22).
You can start by looking through the issues labeled [good first issue](https://codeberg.org/freesewing/freesewing/issues?q=&type=all&sort=&state=open&labels=344963).
Don't be afraid to take on an issue. If you get stuck, [we'll help you out](https://discord.freesewing.org/).

View file

@ -1,15 +0,0 @@
##### New release: v2.22.2
This is a bugfix release addressing come issues in the Titan and Paco design.
##### We're working on v3
We are working hard on the next major version of FreeSewing, which will be released in 2023.
##### Check out where FreeSewing is heading
If you're curious to see what we're working on, check out [the
FreeSewing roadmap](https://github.com/freesewing/freesewing/discussions/1278) which
includes all the things on the horizon for FreeSewing.
[1]: https://github.com/freesewing/freesewing/discussions/2613

View file

@ -1,39 +1,53 @@
<p align='center'><a
href="https://www.npmjs.com/package/@freesewing/core"
title="@freesewing/core on NPM"
><img src="https://img.shields.io/npm/v/@freesewing/core.svg"
><img
src="https://img.shields.io/npm/v/@freesewing/core.svg"
alt="@freesewing/core on NPM"/>
</a> <a
href="https://opensource.org/licenses/MIT"
title="License: MIT"
><img src="https://img.shields.io/npm/l/@freesewing/core.svg?label=License"
><img
src="https://img.shields.io/npm/l/@freesewing/core.svg?label=License"
alt="License: MIT"/>
</a> <a
href="https://deepscan.io/dashboard#view=project&tid=2114&pid=2993&bid=23256"
title="Code quality on DeepScan"
><img src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
><img
src="https://deepscan.io/api/teams/2114/projects/2993/branches/23256/badge/grade.svg"
alt="DeepScan grade"
></a> <a
href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen"
title="Open issues tagged pkg:aaron"
><img src="https://img.shields.io/github/issues/freesewing/freesewing.svg?label=Issues"
href="https://codeberg.org/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen"
title="Open issues"
><img
src="https://img.shields.io/github/issues/freesewing/freesewing.svg?label=Issues"
alt="Open issues"/>
</a> <a
href="#contributors-"
title="All Contributors"
><img src="https://img.shields.io/badge/all_contributors-131-pink.svg"
><img
src="https://img.shields.io/badge/all_contributors-131-pink.svg"
alt="All Contributors"/>
</a></p><p align='center'><a
</a></p>
<p align='center'><a
href="https://forum.freesewing.eu"
title="Join the FreeSewing Forum"
><img
src="https://img.shields.io/discourse/users?server=https%3A%2F%2Fforum.freesewing.eu&label=Forum&color=%2385d996"
alt="Join the FreeSewing Forum"
/></a> <a
href="https://discord.freesewing.org"
title="Chat with us on Discord"
><img src="https://img.shields.io/discord/698854858052075530?label=Chat%20on%20Discord"
alt="Chat with us on Discord"/>
</a><a
><img
src="https://img.shields.io/discord/698854858052075530?label=Chat%20on%20Discord"
alt="Chat with us on Discord"
/></a> <a
href="https://freesewing.org/patrons/join"
title="Become a FreeSewing Patron"
><img src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
alt="Become a FreeSewing Patron"/>
</a></p>
><img
src="https://img.shields.io/badge/%F3%A0%80%A0-Support%20us-blueviolet.svg?logo=cash-app&logoColor=white&logoWidth=15"
alt="Become a FreeSewing Patron"
/></a></p>
# FreeSewing

View file

@ -2,18 +2,16 @@
## Supported Versions
Until v3 is GA I will support both v2 and v3.
Once v3 is out of beta, I will drop support for v2 shortly after.
| Version | Supported |
| ------- | ------------------ |
| 3.x | :white_check_mark: |
| 2.x | :white_check_mark: |
| 4.x | :white_check_mark: |
| 3.x | :x: |
| 2.x | :x: |
| < 2.0 | :x: |
## Reporting a Vulnerability
- You can report an issue here: https://next.freesewing.org/support
- You can report an issue here: https://freesewing.eu/support
- Or you can email joost, the FreeSewing maintainer, at joost@joost.at.
I do not have money to spend on a bug bounty program, but if you provide your snail mail (physical) address, I will send you some stickers.

View file

@ -1,14 +0,0 @@
# Using Ansible to manage FreeSewing infrastructure
This folder holds [Ansible](https://www.ansible.com/) playbooks and
configuration to manage FreeSewing's infrastructure.
These playbooks do things like installing updates on our servers, handling
maintenance tasks, and so on.
Because of the nature of these tasks, they typically require the kind of access
to our infrastructure that is only available to the maintainer.
As such, you can probably not use these playbooks, but you are welcome to look
around if you are curious or would like to learn about using Ansible in some
real-world scenario.

View file

@ -1,16 +0,0 @@
[defaults]
# The user that will be connecting to remote systems
remote_user = ansible-bot
# Private key file for authentication
private_key_file = ~/.ssh/ansible-bot_rsa
# Set local and remote tmp folder
local_tmp = /tmp/ansible
remote_tmp = /tmp/ansible
# The location of the Ansible inventory
inventory=./inventory.yaml
# Use SSH for transport
transport=ssh

View file

@ -1,18 +0,0 @@
# This is the Ansible inventory file for FreeSewing infrastructure
local:
hosts:
localhost: {}
all:
children:
v2:
hosts:
backend.freesewing.org:
db: freesewing
v3:
hosts:
backend3.freesewing.org:
monorepo: /fs/monorepo

View file

@ -1,17 +0,0 @@
# An Ansible playbook to install NodeJS dependencies (npm install)
#
# The FreeSewing production backend runs from the `production-backend`
# branch on our backend server. This playbook runs `yarn install` in
# the repository root
---
- hosts: '!localhost'
gather_facts: false
# Use binaries (yarn & node) from nvm (lts/hydrogen)
environment:
PATH: "/home/ansible-bot/.nvm/versions/node/v18.17.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/sbin:/usr/sbin:/usr/local/sbin"
tasks:
- name: Install monorepo dependencies (yarn install)
community.general.yarn:
# Don't install dev dependencies
production: true
path: "{{ monorepo }}"

View file

@ -1,22 +0,0 @@
# An Ansible playbook to update the backend repository.
#
# The FreeSewing production backend runs from the `production-backend`
# branch on our backend server. This playbook updates the repository to
# the latest version of the `production-backend` branch.
---
- hosts: '!localhost'
gather_facts: false
tasks:
- name: Bring monorepo up to date with production-backend branch
git:
# We don't need history
depth: 1
# We don't need other branches
single_branch: true
# Monorepo url
repo: git@github.com:freesewing/freesewing.git
# Destination folder
dest: "{{ monorepo }}"
# Check out the production-backend branch
version: production-backend

View file

@ -1,9 +0,0 @@
#!/bin/bash
date=$(date +%F)
backupDir="/fs/backup/mongo/${date}/"
[ -z "$1" ] && echo "Missing param" && exit 1
database=$1
mkdir -p $backupDir
mongodump --db $database --out $backupDir

View file

@ -1,85 +0,0 @@
/*
* This migrates 2.6 data to 2.7
*/
// The shoulderSlope measurement is now different, so we need to remove it
db.people.updateMany({}, {$unset: { 'measurements.shoulderSlope': '' }})
db.patterns.updateMany({}, {$unset: { 'data.settings.measurements.shoulderSlope': '' }})
// The seatDepth measurement is no longer used, so we remove it
db.people.updateMany({}, {$unset: { 'measurements.seatDepth': '' }})
db.patterns.updateMany({}, {$unset: { 'data.settings.measurements.seatDepth': '' }})
// The hipsToUpperLeg measurement is no longer used, so we remove it
db.people.updateMany({}, {$unset: { 'measurements.hipsToUpperLeg': '' }})
db.patterns.updateMany({}, {$unset: { 'data.settings.measurements.hipsToUpperLeg': '' }})
/* A bunch of circumference measurements have been renamed */
// ankle
db.people.updateMany({}, {$rename: {'measurements.ankleCircumference': 'measurements.ankle'}})
db.patterns.updateMany({}, {$rename: {'data.settings.measurements.ankleCircumference': 'data.settings.measurements.ankle'}})
// biceps
db.people.updateMany({}, {$rename: {'measurements.bicepsCircumference': 'measurements.biceps'}})
db.patterns.updateMany({}, {$rename: {'data.settings.measurements.bicepsCircumference': 'data.settings.measurements.biceps'}})
// chest
db.people.updateMany({}, {$rename: {'measurements.chestCircumference': 'measurements.chest'}})
db.patterns.updateMany({}, {$rename: {'data.settings.measurements.chestCircumference': 'data.settings.measurements.chest'}})
// head
db.people.updateMany({}, {$rename: {'measurements.headCircumference': 'measurements.head'}})
db.patterns.updateMany({}, {$rename: {'data.settings.measurements.headCircumference': 'data.settings.measurements.head'}})
// hips
db.people.updateMany({}, {$rename: {'measurements.hipsCircumference': 'measurements.hips'}})
db.patterns.updateMany({}, {$rename: {'data.settings.measurements.hipsCircumference': 'data.settings.measurements.hips'}})
// knee
db.people.updateMany({}, {$rename: {'measurements.kneeCircumference': 'measurements.knee'}})
db.patterns.updateMany({}, {$rename: {'data.settings.measurements.kneeCircumference': 'data.settings.measurements.knee'}})
// neck
db.people.updateMany({}, {$rename: {'measurements.neckCircumference': 'measurements.neck'}})
db.patterns.updateMany({}, {$rename: {'data.settings.measurements.neckCircumference': 'data.settings.measurements.neck'}})
// seat
db.people.updateMany({}, {$rename: {'measurements.seatCircumference': 'measurements.seat'}})
db.patterns.updateMany({}, {$rename: {'data.settings.measurements.seatCircumference': 'data.settings.measurements.seat'}})
// upperleg
db.people.updateMany({}, {$rename: {'measurements.upperLegCircumference': 'measurements.upperLeg'}})
db.patterns.updateMany({}, {$rename: {'data.settings.measurements.upperLegCircumference': 'data.settings.measurements.upperLeg'}})
// wrist
db.people.updateMany({}, {$rename: {'measurements.wristCircumference': 'measurements.wrist'}})
db.patterns.updateMany({}, {$rename: {'data.settings.measurements.wristCircumference': 'data.settings.measurements.wrist'}})
/* Natural waist is now just waist */
// Waist
db.people.updateMany({}, {$rename: {'measurements.naturalWaist': 'measurements.waist'}})
db.patterns.updateMany({}, {$rename: {'data.settings.measurements.naturalWaist': 'data.settings.measurements.waist'}})
// WaistToFloor
db.people.updateMany({}, {$rename: {'measurements.naturalWaistToFloor': 'measurements.waistToFloor'}})
db.patterns.updateMany({}, {$rename: {'data.settings.measurements.naturalWaistToFloor': 'data.settings.measurements.waistToFloor'}})
// WaistToKnee
db.people.updateMany({}, {$rename: {'measurements.naturalWaistToKnee': 'measurements.waistToKnee'}})
db.patterns.updateMany({}, {$rename: {'data.settings.measurements.naturalWaistToKnee': 'data.settings.measurements.waistToKnee'}})
// WaistToSeat
db.people.updateMany({}, {$rename: {'measurements.naturalWaistToSeat': 'measurements.waistToSeat'}})
db.patterns.updateMany({}, {$rename: {'data.settings.measurements.naturalWaistToSeat': 'data.settings.measurements.waistToSeat'}})
// WaistToUnderbust
db.people.updateMany({}, {$rename: {'measurements.naturalWaistToUnderbust': 'measurements.waistToUnderbust'}})
db.patterns.updateMany({}, {$rename: {'data.settings.measurements.naturalWaistToUnderbust': 'data.settings.measurements.waistToUnderbust'}})
// WaistToHips
db.people.updateMany({}, {$rename: {'measurements.naturalWaistToHip': 'measurements.waistToHips'}})
db.patterns.updateMany({}, {$rename: {'data.settings.measurements.naturalWaistToHip': 'data.settings.measurements.waistToHips'}})
/* seatDepth is no longer uses */

View file

@ -1,12 +0,0 @@
# An Ansible playbook to install the latest updates on a (debian) Linux system
---
- hosts: '!localhost'
gather_facts: false
become: true
tasks:
- name: Update all packages to their latest version
apt:
name: '*'
state: latest
update_cache: yes

View file

@ -1,22 +0,0 @@
---
# Hardcoding this to prevent accidentally migrating the production database
- hosts: next.backend.freesewing.org
gather_facts: false
become: true
tasks:
- name: Create temporary directory
file:
path: "{{tmp}}"
state: directory
mode: '0755'
- name: Copy migration file to remote host
copy:
src: migrate_data.js
dest: "{{tmp}}"
owner: root
group: root
mode: '0755'
- name: Migrate 2.6 data to 2.7
shell: "mongo next_freesewing {{tmp}}/migrate_data.js"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 774 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 776 KiB

View file

@ -1,5 +0,0 @@
The drawings in these subfolders are by Dutch artist Rov van der Hel.
Find out more about Roy and his work
on [Instagram](https://www.instagram.com/royvdhel_art/)
or [Deviantart](https://www.deviantart.com/royvdhel-art/gallery)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 971 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 393 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 357 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 396 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 541 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 592 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 660 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 446 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 409 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 477 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 814 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 776 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 744 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 696 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 558 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 572 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 741 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 716 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1,004 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 726 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 846 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 703 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1,002 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 318 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 347 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 300 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 373 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 330 KiB

Some files were not shown because too many files have changed in this diff Show more