chore: Blog post for v3.1 release
This commit is contained in:
parent
734ed914e4
commit
a1ca849847
13 changed files with 206 additions and 20 deletions
|
@ -924,7 +924,7 @@
|
|||
"design": "Wouter Van Wageningen",
|
||||
"difficulty": 3,
|
||||
"lab": true,
|
||||
"org": false,
|
||||
"org": true,
|
||||
"tags": [
|
||||
"bottoms",
|
||||
"trousers"
|
||||
|
@ -935,4 +935,4 @@
|
|||
"elastic"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
63
markdown/org/blog/freesewing-v3-1/en.md
Normal file
63
markdown/org/blog/freesewing-v3-1/en.md
Normal file
|
@ -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.
|
||||
|
|
@ -3,3 +3,4 @@ title: Lumira leggings
|
|||
---
|
||||
|
||||
<DesignInfo design='lumira' docs />
|
||||
|
||||
|
|
|
@ -2,7 +2,5 @@
|
|||
title: "Lumira leggings"
|
||||
---
|
||||
|
||||
|
||||
|
||||
<DesignInfo design='lumira' docs />
|
||||
|
||||
|
|
|
@ -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.
|
||||
</Note>
|
||||
|
||||
|
|
|
@ -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.
|
||||
</Note>
|
||||
|
||||
|
|
|
@ -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.
|
||||
</Note>
|
||||
|
||||
|
|
|
@ -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.
|
||||
</Note>
|
||||
|
||||
|
|
|
@ -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.
|
||||
</Note>
|
||||
|
||||
|
|
|
@ -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.
|
||||
</Note>
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
86
sites/org/pages/account/patterns/lumira/edit.mjs
Normal file
86
sites/org/pages/account/patterns/lumira/edit.mjs
Normal file
|
@ -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 }) => (
|
||||
<Workbench preload={{ settings }} saveAs={{ pattern: id }} {...{ design, Design }} />
|
||||
)
|
||||
|
||||
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
|
||||
<PageWrapper {...page} title="Lumira" layout={pattern ? WorkbenchLayout : false} header={null}>
|
||||
{pattern ? (
|
||||
<EditDesignComponent
|
||||
id={pattern.id}
|
||||
settings={pattern.settings}
|
||||
design="lumira"
|
||||
Design={Lumira}
|
||||
/>
|
||||
) : (
|
||||
<div>
|
||||
<h1>{t('account:oneMomentPLease')}</h1>
|
||||
<Loading />
|
||||
</div>
|
||||
)}
|
||||
</PageWrapper>
|
||||
)
|
||||
}
|
||||
|
||||
export default EditLumiraPage
|
||||
|
||||
export async function getStaticProps({ locale }) {
|
||||
return {
|
||||
props: {
|
||||
...(await serverSideTranslations(locale, ns)),
|
||||
page: {
|
||||
locale,
|
||||
path: ['account', 'patterns', 'lumira'],
|
||||
title: 'Lumira',
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
41
sites/org/pages/new/lumira.mjs
Normal file
41
sites/org/pages/new/lumira.mjs
Normal file
|
@ -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 }) => (
|
||||
<PageWrapper {...page} title="Lumira" layout={WorkbenchLayout} header={null}>
|
||||
<Workbench
|
||||
{...{
|
||||
design: 'lumira',
|
||||
Design: Lumira,
|
||||
docs,
|
||||
}}
|
||||
/>
|
||||
</PageWrapper>
|
||||
)
|
||||
|
||||
export default NewLumiraPage
|
||||
|
||||
export async function getStaticProps({ locale }) {
|
||||
return {
|
||||
props: {
|
||||
...(await serverSideTranslations(locale, ns)),
|
||||
page: {
|
||||
locale,
|
||||
path: ['new', 'lumira'],
|
||||
title: 'Lumira',
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue