1
0
Fork 0

chore: Blog post for v3.1 release

This commit is contained in:
Joost De Cock 2023-12-30 18:20:24 +01:00
parent 734ed914e4
commit a1ca849847
13 changed files with 206 additions and 20 deletions

View file

@ -924,7 +924,7 @@
"design": "Wouter Van Wageningen",
"difficulty": 3,
"lab": true,
"org": false,
"org": true,
"tags": [
"bottoms",
"trousers"
@ -935,4 +935,4 @@
"elastic"
]
}
}
}

View 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.

View file

@ -3,3 +3,4 @@ title: Lumira leggings
---
<DesignInfo design='lumira' docs />

View file

@ -2,7 +2,5 @@
title: "Lumira leggings"
---
<DesignInfo design='lumira' docs />

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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,

View 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',
},
},
}
}

View 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',
},
},
}
}