From a1ca849847ea4cafaacd3bceb28a239b546bff75 Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Sat, 30 Dec 2023 18:20:24 +0100 Subject: [PATCH] chore: Blog post for v3.1 release --- config/software/designs.json | 4 +- markdown/org/blog/freesewing-v3-1/en.md | 63 ++++++++++++++ markdown/org/docs/designs/lumira/de.md | 1 + markdown/org/docs/designs/lumira/en.md | 2 - .../docs/designs/lumira/options/ease/de.md | 4 +- .../docs/designs/lumira/options/ease/en.md | 3 +- .../docs/designs/lumira/options/ease/es.md | 4 +- .../docs/designs/lumira/options/ease/fr.md | 4 +- .../docs/designs/lumira/options/ease/nl.md | 4 +- .../docs/designs/lumira/options/ease/uk.md | 4 +- sites/org/hooks/use-design.mjs | 6 +- .../pages/account/patterns/lumira/edit.mjs | 86 +++++++++++++++++++ sites/org/pages/new/lumira.mjs | 41 +++++++++ 13 files changed, 206 insertions(+), 20 deletions(-) create mode 100644 markdown/org/blog/freesewing-v3-1/en.md create mode 100644 sites/org/pages/account/patterns/lumira/edit.mjs create mode 100644 sites/org/pages/new/lumira.mjs diff --git a/config/software/designs.json b/config/software/designs.json index fac30373859..39075f37372 100644 --- a/config/software/designs.json +++ b/config/software/designs.json @@ -924,7 +924,7 @@ "design": "Wouter Van Wageningen", "difficulty": 3, "lab": true, - "org": false, + "org": true, "tags": [ "bottoms", "trousers" @@ -935,4 +935,4 @@ "elastic" ] } -} \ No newline at end of file +} diff --git a/markdown/org/blog/freesewing-v3-1/en.md b/markdown/org/blog/freesewing-v3-1/en.md new file mode 100644 index 00000000000..b1634585ad9 --- /dev/null +++ b/markdown/org/blog/freesewing-v3-1/en.md @@ -0,0 +1,63 @@ +--- +author: "joostdecock" +caption: "This post is mostly about our work on progressive disclosure. Also: Three new patterns!" +date: "2023-12-30" +intro: "We've just release FreeSewing v3.1 🎉" +title: "FreeSewing v3.1 is out with two new designs, and a reminder that we now stream updates" +--- + + +The day after Xmas, I finally found some time to bundle up the lastest and +greatest of FreeSewing and wrap it in a neat little package and stamp it with +**FreeSewing v3.1** 🎉 + +It's our first release since the long wait for v3.0 and we jumped right ahead +to v3.1, no patch release, no nothing. Is that because we are perfect and +write code that is entirely bug-free? Alas, that is not the case. + +Instead, the reason this is the first post-v3 release is because we've changed +how we do things in v3 which makes releases less of a big deal. Bear with me, +I'll explain what I mean by that. But before I do so, let's look at those two +new designs: + +## Meet Otis and Lumira + +There are 2 new designs in this release: [Otis](/designs/otis) is a baby +romper, and [Lumira](/designs/lumira) are leggings. Both are the work of +[Wouter Van Wageningen](/users/wouter.vdub), aka FreeSewing's [Number +One](https://en.wikipedia.org/wiki/William_Riker). + +I can see both of these becoming rather popular. Otis requires only a single +measurement (the waist) so they are perfect gift material. And leggings are +something everyone should have in their wardrobe. (I am one of those people who +is cold all the time, so I enjoy wearing them under my other trousers.) + +We could use some example pictures, so go ahead and try them out now. When +you're done, [don't forget to showcase them](/new/showcase). + +## Why you won't see many v3 path releases + +Without wanting to get too much in the weeds, the way we build and deploy +FreeSewing.org has changed since version 3. In the v2 era, designs on +FreeSewing.org were loaded from the packages we release. As such all new +designs, as well as all changes or bugfixes required a new release to be +published. + +These days, everything is built from source and there is -- at least for +FreeSewing.org to function -- no reason to publish new releases. That is why we +went from v3.0.0 to v3.1.0 an never saw a v3.0.1. It's not that no bug fixes +occur (check [the +changelog](https://github.com/freesewing/freesewing/blob/develop/CHANGELOG.md) +for details) it's just that there's no need for us to publish a new release for +each bug fix. + +There are still reasons to publish updated versions of our software. For one +thing, changes to our standalone development environment still require a new +published version. And there are the people who use our software for their own +purposes, who benefit from these updates. + +But all in all, you can expect to see fewer releases, in particular fewer patch +releases as there is little reason for us to put those out. +Instead, updates, bug fixes, improvements, and new features are now delivered +as a continious stream of small steps, rather than the occasional leap forward. + diff --git a/markdown/org/docs/designs/lumira/de.md b/markdown/org/docs/designs/lumira/de.md index aa37943a1cd..e39e4185475 100644 --- a/markdown/org/docs/designs/lumira/de.md +++ b/markdown/org/docs/designs/lumira/de.md @@ -3,3 +3,4 @@ title: Lumira leggings --- + diff --git a/markdown/org/docs/designs/lumira/en.md b/markdown/org/docs/designs/lumira/en.md index 38f1ecb0a20..5480e6615ca 100644 --- a/markdown/org/docs/designs/lumira/en.md +++ b/markdown/org/docs/designs/lumira/en.md @@ -2,7 +2,5 @@ title: "Lumira leggings" --- - - diff --git a/markdown/org/docs/designs/lumira/options/ease/de.md b/markdown/org/docs/designs/lumira/options/ease/de.md index 4f45bc3aa82..8f5a9ca2b2a 100644 --- a/markdown/org/docs/designs/lumira/options/ease/de.md +++ b/markdown/org/docs/designs/lumira/options/ease/de.md @@ -2,8 +2,6 @@ title: Zugabe --- -*** - Controls the amount of ease build into the pattern. Since these are leggings that are to be made of stretch fabric, the ease is nagative. So the completed garment will be narrower than the measurements would dictate. @@ -12,3 +10,5 @@ Getting the wease right for your type of fabric is essential for getting a good too negative, the leggings will be too constricting, and limiting movement. If you don't make the ease negative enough, the leggings will not hug your legs and torso. The fabric should be stretched in all places, without being too tight. + + diff --git a/markdown/org/docs/designs/lumira/options/ease/en.md b/markdown/org/docs/designs/lumira/options/ease/en.md index 82657ea23df..db88ee61374 100644 --- a/markdown/org/docs/designs/lumira/options/ease/en.md +++ b/markdown/org/docs/designs/lumira/options/ease/en.md @@ -2,8 +2,6 @@ title: "Ease" --- -*** - Controls the amount of ease build into the pattern. Since these are leggings that are to be made of stretch fabric, the ease is nagative. So the completed garment will be narower than the measurements would dictate. @@ -12,4 +10,5 @@ Getting the wease right for your type of fabric is essential for getting a good too negative, the leggings will be too constricting, and limiting movement. If you don't make the ease negative enough, the leggings will not hug your legs and torso. The fabric should be stretched in all places, without being too tight. + diff --git a/markdown/org/docs/designs/lumira/options/ease/es.md b/markdown/org/docs/designs/lumira/options/ease/es.md index 1b8c71afd27..f30d3dc6e3a 100644 --- a/markdown/org/docs/designs/lumira/options/ease/es.md +++ b/markdown/org/docs/designs/lumira/options/ease/es.md @@ -2,8 +2,6 @@ title: Único --- -*** - Controls the amount of ease build into the pattern. Since these are leggings that are to be made of stretch fabric, the ease is nagative. So the completed garment will be narrower than the measurements would dictate. @@ -12,3 +10,5 @@ Getting the wease right for your type of fabric is essential for getting a good too negative, the leggings will be too constricting, and limiting movement. If you don't make the ease negative enough, the leggings will not hug your legs and torso. The fabric should be stretched in all places, without being too tight. + + diff --git a/markdown/org/docs/designs/lumira/options/ease/fr.md b/markdown/org/docs/designs/lumira/options/ease/fr.md index 20cc925d49b..27fab7e8ae3 100644 --- a/markdown/org/docs/designs/lumira/options/ease/fr.md +++ b/markdown/org/docs/designs/lumira/options/ease/fr.md @@ -2,8 +2,6 @@ title: Aisance --- -*** - Controls the amount of ease build into the pattern. Since these are leggings that are to be made of stretch fabric, the ease is nagative. So the completed garment will be narrower than the measurements would dictate. @@ -12,3 +10,5 @@ Getting the wease right for your type of fabric is essential for getting a good too negative, the leggings will be too constricting, and limiting movement. If you don't make the ease negative enough, the leggings will not hug your legs and torso. The fabric should be stretched in all places, without being too tight. + + diff --git a/markdown/org/docs/designs/lumira/options/ease/nl.md b/markdown/org/docs/designs/lumira/options/ease/nl.md index c0527616e92..0f1ca52550f 100644 --- a/markdown/org/docs/designs/lumira/options/ease/nl.md +++ b/markdown/org/docs/designs/lumira/options/ease/nl.md @@ -2,8 +2,6 @@ title: Overwijdte --- -*** - Controls the amount of ease build into the pattern. Since these are leggings that are to be made of stretch fabric, the ease is nagative. So the completed garment will be narrower than the measurements would dictate. @@ -12,3 +10,5 @@ Getting the wease right for your type of fabric is essential for getting a good too negative, the leggings will be too constricting, and limiting movement. If you don't make the ease negative enough, the leggings will not hug your legs and torso. The fabric should be stretched in all places, without being too tight. + + diff --git a/markdown/org/docs/designs/lumira/options/ease/uk.md b/markdown/org/docs/designs/lumira/options/ease/uk.md index 48461993996..9422f869544 100644 --- a/markdown/org/docs/designs/lumira/options/ease/uk.md +++ b/markdown/org/docs/designs/lumira/options/ease/uk.md @@ -2,8 +2,6 @@ title: Свобода облягання --- -*** - Controls the amount of ease build into the pattern. Since these are leggings that are to be made of stretch fabric, the ease is nagative. So the completed garment will be narower than the measurements would dictate. @@ -12,3 +10,5 @@ Getting the wease right for your type of fabric is essential for getting a good too negative, the leggings will be too constricting, and limiting movement. If you don't make the ease negative enough, the leggings will not hug your legs and torso. The fabric should be stretched in all places, without being too tight. + + diff --git a/sites/org/hooks/use-design.mjs b/sites/org/hooks/use-design.mjs index 57cf600ead0..95fead2e6b8 100644 --- a/sites/org/hooks/use-design.mjs +++ b/sites/org/hooks/use-design.mjs @@ -1,7 +1,3 @@ -/* - * This file is auto-generated. - * Any manual changes will be overwritten. - */ import { Aaron as aaron } from '@freesewing/aaron' import { Albert as albert } from '@freesewing/albert' import { Bee as bee } from '@freesewing/bee' @@ -28,6 +24,7 @@ import { Huey as huey } from '@freesewing/huey' import { Hugo as hugo } from '@freesewing/hugo' import { Jaeger as jaeger } from '@freesewing/jaeger' import { Lucy as lucy } from '@freesewing/lucy' +import { Lumira as lumira } from '@freesewing/lumira' import { Lunetius as lunetius } from '@freesewing/lunetius' import { Noble as noble } from '@freesewing/noble' import { Octoplushy as octoplushy } from '@freesewing/octoplushy' @@ -80,6 +77,7 @@ const designs = { hugo, jaeger, lucy, + lumira, lunetius, noble, octoplushy, diff --git a/sites/org/pages/account/patterns/lumira/edit.mjs b/sites/org/pages/account/patterns/lumira/edit.mjs new file mode 100644 index 00000000000..718a1a0fc6b --- /dev/null +++ b/sites/org/pages/account/patterns/lumira/edit.mjs @@ -0,0 +1,86 @@ +/* + * This page is auto-generated. Do not edit it by hand. + */ +import { Lumira } from 'designs/lumira/src/index.mjs' +// Dependencies +import { serverSideTranslations } from 'next-i18next/serverSideTranslations' +import { nsMerge, getSearchParam } from 'shared/utils.mjs' +// Hooks +import { useState, useEffect, useContext } from 'react' +import { useTranslation } from 'next-i18next' +import { useBackend } from 'shared/hooks/use-backend.mjs' +// Context +import { LoadingStatusContext } from 'shared/context/loading-status-context.mjs' +// Components +import { PageWrapper, ns as pageNs } from 'shared/components/wrappers/page.mjs' +import { Workbench, ns as wbNs } from 'shared/components/workbench/new.mjs' +import { WorkbenchLayout } from 'site/components/layouts/workbench.mjs' +import { Loading } from 'shared/components/spinner.mjs' + +// Translation namespaces used on this page +const ns = nsMerge('lumira', wbNs, pageNs) + +const EditDesignComponent = ({ id, design, Design, settings }) => ( + +) + +const EditLumiraPage = ({ page }) => { + const { setLoadingStatus } = useContext(LoadingStatusContext) + const backend = useBackend() + const { t } = useTranslation(ns) + + const [pattern, setPattern] = useState(false) + + useEffect(() => { + const getPattern = async () => { + setLoadingStatus([true, t('backendLoadingStarted')]) + let result + try { + result = await backend.getPattern(id) + if (result.success) { + setPattern(result.data.pattern) + setLoadingStatus([true, 'backendLoadingCompleted', true, true]) + } else setLoadingStatus([true, 'backendError', true, false]) + } catch (err) { + console.log(err) + setLoadingStatus([true, 'backendError', true, false]) + } + } + const id = getSearchParam('id') + if (id) getPattern() + }, [backend, setLoadingStatus, t]) + + return ( + // prettier-ignore + + {pattern ? ( + + ) : ( +
+

{t('account:oneMomentPLease')}

+ +
+ )} +
+ ) +} + +export default EditLumiraPage + +export async function getStaticProps({ locale }) { + return { + props: { + ...(await serverSideTranslations(locale, ns)), + page: { + locale, + path: ['account', 'patterns', 'lumira'], + title: 'Lumira', + }, + }, + } +} diff --git a/sites/org/pages/new/lumira.mjs b/sites/org/pages/new/lumira.mjs new file mode 100644 index 00000000000..333cc7dcec4 --- /dev/null +++ b/sites/org/pages/new/lumira.mjs @@ -0,0 +1,41 @@ +/* + * This page is auto-generated. Do not edit it by hand. + */ +import { Lumira } from 'designs/lumira/src/index.mjs' +// Dependencies +import { serverSideTranslations } from 'next-i18next/serverSideTranslations' +import { nsMerge } from 'shared/utils.mjs' +// Components +import { PageWrapper, ns as pageNs } from 'shared/components/wrappers/page.mjs' +import { Workbench, ns as wbNs } from 'shared/components/workbench/new.mjs' +import { WorkbenchLayout } from 'site/components/layouts/workbench.mjs' + +// Translation namespaces used on this page +const ns = nsMerge('lumira', wbNs, pageNs) + +const NewLumiraPage = ({ page, docs }) => ( + + + +) + +export default NewLumiraPage + +export async function getStaticProps({ locale }) { + return { + props: { + ...(await serverSideTranslations(locale, ns)), + page: { + locale, + path: ['new', 'lumira'], + title: 'Lumira', + }, + }, + } +}