Skip to content

Commit 759c068

Browse files
pwizlamarkkaylorjoshuaellis
authored
Releases (#1920)
* WIP * Create first draft of Releases documentation * Remove a completed TODO item * WIP * Add future flag * Improvements * Add missing features docs link * Fix table * Adjust for alpha release + add real screenshots * Fix SEO and add badges * Make final adjustments to intro. * Clean up future flag documentation * Make a few more adjustments * Fix permissions * Fix link * Remove Cloud Pro badges * Add pricing information to Cloud table * Make feature/future flag adjustments * Fix object in feature flag docs * Fix sidebar label for features config. * Fix wording * Fix procedure list numbers * Remove experimental callout and include information in intro. * Mention future flags in User Guide introduction * Update docusaurus/docs/user-docs/releases/managing-a-release.md Co-authored-by: markkaylor <[email protected]> * Update docusaurus/docs/user-docs/releases/creating-a-release.md Co-authored-by: markkaylor <[email protected]> * Update docusaurus/docs/user-docs/content-manager/adding-content-to-releases.md Co-authored-by: markkaylor <[email protected]> * Update docusaurus/docs/dev-docs/configurations/features.md Co-authored-by: Josh <[email protected]> * More improvements No time for a proper commit message, sorry 😂 * Update Future badge style * Update badges order We'll remove the Alpha, then the Future badge first. * Fix SEO tags * Fix & → and * Use SVG icon for "more" button * Remove Cloud Pro badge from CM docs * Remove updated badge on Writing Content --------- Co-authored-by: markkaylor <[email protected]> Co-authored-by: Josh <[email protected]>
1 parent 4f2eb5e commit 759c068

25 files changed

+368
-6
lines changed

docusaurus/docs/cloud/getting-started/usage-billing.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ The usage-based pricing for Strapi Cloud is based on the following criteria and
1818
| **Assets Bandwidth** | 100GB | 500GB | 1,000GB |
1919
| **API Requests** | 10,000 | 1,000,000 | 2,000,000 |
2020
| **Audit Logs** | 7 days retention | N/A | 7 days retention |
21+
| **Releases** | 3 pending releases | N/A | 3 pending releases |
2122

2223
Where:
2324

@@ -26,6 +27,7 @@ Where:
2627
- **Assets Storage** is the amount of storage used by your assets.
2728
- **Assets Bandwidth** is the amount of bandwidth used by your assets.
2829
- **API Requests** are the number of requests made to your APIs. This includes requests made to the GraphQL and REST APIs.
30+
- **Releases** are the maximum number of pending [releases](/user-docs/releases/introduction) that can be created.
2931

3032
## Seats management
3133

@@ -83,4 +85,4 @@ If you don't pay the invoice, the subscription of your project will automaticall
8385

8486
#### Project suspension for other reasons
8587

86-
If your project was suspended for reasons other than unpaid invoice leading to subscription cancellation, you may not have the possibility to reactivate your project yourself. You should receive an email with instructions on how to resolve the issue. If you do not receive the email notification, please contact [Strapi Support](mailto:[email protected]).
88+
If your project was suspended for reasons other than unpaid invoice leading to subscription cancellation, you may not have the possibility to reactivate your project yourself. You should receive an email with instructions on how to resolve the issue. If you do not receive the email notification, please contact [Strapi Support](mailto:[email protected]).

docusaurus/docs/dev-docs/configurations.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ Some specific features require additional configuration:
4343
| [Cron jobs](/dev-docs/configurations/cron) | <ul><li>In the `/config/server` file to enable the feature</li><li>In a dedicated, optional `cron-tasks` file that can be used to declare the jobs</li></ul> | Required to setup CRON jobs for the server. |
4444
| [Environment variables](/dev-docs/configurations/environment) | In dedicated files and folders for the environment (e.g., `config/env/production/server`) | Optionally used to define different environments and their variables. |
4545
| [Single Sign-On (SSO)](/dev-docs/configurations/sso) <EnterpriseBadge /> | In the `config/admin` file | Required to use the Entreprise-only SSO feature if enabled on your project. |
46+
| [Feature flags](/dev-docs/configurations/features) | In the `config/features` file | Optional for a typical, stable Strapi application.<br/>Only required to enable [future flags](/dev-docs/configurations/features).|
4647

4748
## Guides
4849

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
---
2+
title: Features configuration
3+
sidebar_label: Features
4+
description: Enable experimental Strapi features
5+
displayed_sidebar: devDocsConfigSidebar
6+
---
7+
8+
# Features configuration
9+
10+
The `config/features.js|ts` file is used to enable feature flags. Currently this file only includes a `future` object used to enable experimental features through **future flags**.
11+
12+
Some incoming Strapi features are not yet ready to be shipped to all users, but Strapi still offers community users the opportunity to provide early feedback on these new features or changes. With these experimental features, developers have the flexibility to choose and integrate new features and changes into their Strapi applications as they become available in the current major version as well as assist us in shaping these new features.
13+
14+
Such experimental features are indicated by a <FutureBadge /> badge throughout the documentation and enabling these features requires enabling the corresponding future flags. Future flags differ from features that are in alpha in that future flags are disabled by default.
15+
16+
:::danger
17+
Enable future flags at your own risk. Experimental features may be subject to change or removal, may contain breaking changes, may be unstable or not fully ready for use, and some parts may still be under development or using mock data.
18+
:::
19+
20+
<!-- ! Commented out as not relevant for now -->
21+
<!-- Future flags can also be utilized for enabling coming breaking changes in upcoming versions (when prefixed by `vX`, with 'X' being the target version). In this scenario, if you decide to enable a future flag for a breaking change, you will need to migrate your application to adapt to this breaking change. The benefit of this approach however, is that changes can be adopted incrementally as opposed to one large migration when the next major release occurs. Some of these flags may have started out as regular unstable but development showed the need for breaking changes. Finally, the aim of this is to empower developers to be able to smoothly transition to new major versions without the need to modify their existing application code where possible. -->
22+
23+
## Enabling a future flag
24+
25+
To enable a future flag:
26+
27+
1. (_optional_) If the server is running, stop it with `Ctrl-C`.
28+
2. Open the `config/features.js|ts` file or create it if the file does not exist yet. The file will export a `future` object with all the future flags to enable.
29+
3. To enable a future flag, add its property name (see [full list](#available-future-flags)) to the `future` object and ensure the property's value is set to `true`. The following example shows how to enable the `contentReleases` future flag:
30+
31+
<Tabs groupId='js-ts'>
32+
33+
<Tab value="js" label="JavaScript">
34+
35+
```ts title="/config/features.ts"
36+
module.export = ({ env }) => ({
37+
future: {
38+
// You could also simply write: contentReleases: true
39+
contentReleases: env.bool('STRAPI_FEATURES_FUTURE_CONTENT_RELEASES', false),
40+
},
41+
})
42+
43+
```
44+
45+
This example assumes that you have an `.env` environment file at the root of your application and that the file includes the following line:
46+
47+
```json title=".env"
48+
STRAPI_FEATURES_FUTURE_CONTENT_RELEASES=true
49+
```
50+
51+
If your environment file does not include this value, the `contentReleases` future flag property value will default to `false` and the experimental feature will not be enabled.
52+
53+
</Tab>
54+
55+
<Tab value="ts" label="TypeScript">
56+
57+
```ts title="/config/features.ts"
58+
export default {
59+
future: {
60+
// You could also simply write: contentReleases: true
61+
contentReleases: env.bool('STRAPI_FEATURES_FUTURE_CONTENT_RELEASES', false),
62+
},
63+
};
64+
```
65+
66+
This example assumes that you have an `.env` environment file at the root of your application and that the file includes the following line:
67+
68+
```json title=".env"
69+
STRAPI_FEATURES_FUTURE_CONTENT_RELEASES=true
70+
```
71+
72+
If your environment file does not include this value, the `contentReleases` future flag property value will default to `false` and the experimental feature will not be enabled.
73+
74+
</Tab>
75+
</Tabs>
76+
77+
4. Rebuild the admin panel and restart the server:
78+
79+
<Tabs groupId="yarn-npm">
80+
<Tab value="yarn" label="Yarn">
81+
82+
```sh
83+
yarn develop
84+
```
85+
</Tab>
86+
<Tab value="npm" label="NPM">
87+
88+
```sh
89+
npm run develop
90+
```
91+
92+
</Tab>
93+
</Tabs>
94+
95+
## Future flags API
96+
97+
Developers can use the following APIs to interact with future flags:
98+
99+
- Features configuration is part of the `config` object and can be read with `strapi.config.get('features')` or with `strapi.features.config`.
100+
101+
- `strapi.features.future` returns the `isEnabled()` that can be used to determine if a future flag is enabled, using the following method: `strapi.features.future.isEnabled('featureName')`.
102+
103+
## Available future flags
104+
105+
The following future flags are currently available and can be used in the `future` object of the `config/features` configuration file:
106+
107+
| Property name | Related feature | Suggested environment variable name |
108+
| ----------------- | -------------------------------------------- | ----------------------------------------- |
109+
| `contentReleases` | [Releases](/user-docs/releases/introduction) | `STRAPI_FEATURES_FUTURE_CONTENT_RELEASES` |
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
title: Including content in a release
3+
description: Instructions to include content in a release
4+
displayed_sidebar: userDocsSidebar
5+
---
6+
7+
# Including content in a release <EnterpriseBadge /> <CloudTeamBadge /> <FutureBadge /> <AlphaBadge />
8+
9+
Using the [Releases](/user-docs/releases/introduction) feature, you can group several entries to publish them altogether. Adding entries to a release is done from the Content Manager. You can also remove an entry from a release while updating the entry.
10+
11+
:::prerequisites
12+
- Before entries can be added to a release, you must create a release from the [Releases](/user-docs/releases/creating-a-release) page.
13+
- Adding content to a release requires the appropriate permissions for the Content-Releases plugin (see [configuring administrator roles](/user-docs/users-roles-permissions/configuring-administrator-roles#plugins-and-settings)).
14+
:::
15+
16+
<!-- TODO: re-add when implemented -->
17+
<!-- ## Adding multiple entries to a release
18+
19+
Multiple entries can be added to a [release](/user-docs/releases/introduction) from the list view of the Content Manager.
20+
21+
To add entries to a release:
22+
23+
1. From the list view of the Content Manager, select which entries you want to add by ticking the box on the left side of the entries' record.
24+
2. Click on the **Add to release** button located above the header of the table.
25+
3. Select which release to add these entries to.
26+
4. Decide whether these entries will be published or unpublished when the release is published, then click **Continue**. -->
27+
28+
<!-- TODO: add screenshot -->
29+
30+
<ThemedImage
31+
alt="Including content in a release"
32+
sources={{
33+
light: '/img/assets/releases/release-cm-edit-view.png',
34+
dark: '/img/assets/releases/release-cm-edit-view_DARK.png',
35+
}}
36+
/>
37+
38+
## Adding a single entry to a release
39+
40+
An entry can be added to a [release](/user-docs/releases/introduction) while editing it from the edit view of the Content Manager.
41+
42+
To add an entry to a release:
43+
44+
1. In the Releases box in the right sidebar, click the **+ Add to release** button.
45+
2. Select which release to add this entry to.
46+
3. Decide whether the entry will be published or unpublished when the release itself is published, then click **Continue**.
47+
48+
## Removing a single entry from a release
49+
50+
An entry can be removed from a [release](/user-docs/releases/introduction) while editing it from the edit view of the Content Manager.
51+
52+
To remove an entry from a release:
53+
54+
1. In the Releases box in the right sidebar, click the **** three dots below the name of the release.
55+
2. Click the **Remove from release** button.
56+
57+
<!-- TODO: re-add when implemented -->
58+
<!-- :::tip
59+
You can also remove multiple entries from a release directly from the release page (see [Managing a release](/user-docs/releases/managing-a-release)).
60+
::: -->
61+
62+
<!-- TODO: add screenshot -->

docusaurus/docs/user-docs/intro.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ Before going any further into this user guide, we recommend you to acknowledge t
2323

2424
- **License and Pricing Plans** <br/> As a Strapi user you have the choice between using the Community Edition, which is entirely free, or the [Enterprise Edition](https://strapi.io/pricing-self-hosted). In this user guide, if a feature is only available for the Enterprise Edition, an <EnterpriseBadge /> badge is displayed beside the section's title.
2525

26+
- **Future flags** <br/> Some incoming Strapi features are not yet ready to be shipped to all users, but Strapi still offers community users the opportunity to provide early feedback on these new features or changes. This feedback is invaluable in enhancing the feature before the final release. Such experimental features are indicated by a <FutureBadge /> badge throughout the documentation and enabling these features requires enabling the corresponding future flags (see [Developer Docs](/dev-docs/configurations/features#enabling-a-future-flag)).
27+
2628
- **Roles and Permissions** <br/> Some features of the admin panel, as well as the content managed with Strapi itself, are ruled by a system of permissions. From your Strapi admin panel, you have the possibility to define, at a detailed level, the roles and permissions of all administrators and end users. In this user guide, all features and possible options are documented. It is however possible, depending on your role and permissions, that you may not be able to access all these features and options. In that case, please refer to the main Super Admin of your Strapi application.
2729

2830
With all this in mind, you should be ready to start your Strapi experience!
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
title: Creating a release
3+
description: Instructions to create a release from the admin panel
4+
---
5+
6+
# Creating a release <EnterpriseBadge /> <CloudTeamBadge /> <FutureBadge /> <AlphaBadge />
7+
8+
The [Releases](/user-docs/releases/introduction) page allows creating new releases that will be used to organize entries.
9+
10+
<!-- TODO: add actual screenshots for both light and dark modes -->
11+
<ThemedImage
12+
alt="Adding a new release"
13+
sources={{
14+
light: '/img/assets/releases/new-release.png',
15+
dark: '/img/assets/releases/new-release_DARK.png',
16+
}}
17+
/>
18+
19+
<br /><br />
20+
21+
To create a new release:
22+
23+
1. Click the **+ New Release** button in the upper right corner of the Releases page.
24+
2. Give the release a name.
25+
3. Click the **Continue** button.
26+
27+
Adding entries to a release must be done from the Content Manager. You can add a single entry to a release while creating or editing the entry [in the edit view](/user-docs/content-manager/adding-content-to-releases).
28+
29+
<!-- TODO: for later, when multiple addition is implemented -->
30+
<!--
31+
Adding entries to a release must be done from the Content Manager:
32+
33+
- You can add multiple entries to a release [from the list view](/user-docs/content-manager/adding-content-to-releases#adding-multiple-entries-to-a-release).
34+
- You can also add a single entry to a release while creating or editing the entry [in the edit view](/user-docs/content-manager/adding-content-to-releases#adding-a-single-entry-to-a-release). -->
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
title: Introduction to Releases
3+
description: Introduction to the Releases feature that enables content managers to organize entries to publish/unpublish simultaneously
4+
---
5+
6+
# Releases <EnterpriseBadge /> <CloudTeamBadge/> <FutureBadge /> <AlphaBadge/>
7+
8+
Releases enables content managers to organize entries into containers that can perform publish and unpublish actions simultaneously. A release can contain entries from different content types and can mix locales.
9+
<!-- TODO: comment out once it's available — grouping is not available with the alpha release -->
10+
<!-- Entries can be grouped by content type or locale, facilitating review and editing before publication. -->
11+
12+
Releases is currently only available as an experimental feature. To enable it, set the appropriate future flag. See <a href="/dev-docs/configurations/features">future flags</a> documentation for instructions on how to enable a future flag.
13+
14+
<ThemedImage
15+
alt="List of Releases"
16+
sources={{
17+
light: '/img/assets/releases/releases-overview.png',
18+
dark: '/img/assets/releases/releases-overview_DARK.png',
19+
}}
20+
/>
21+
22+
<!-- TODO: update Releases icon with the neutral version -->
23+
Administrators can access Releases from ![Releases icon](/img/assets/icons/releases.svg) _Releases_ in the main navigation of the admin panel.
24+
25+
From the Releases view, it is possible to:
26+
27+
<!-- TODO: add numbers to reflect screenshot -->
28+
- [create a new release](/user-docs/releases/creating-a-release)
29+
- view pending and done releases
30+
- click on a release to [manage its content](/user-docs/releases/managing-a-release)
31+
32+
:::info
33+
It's not currently possible to schedule the publication of a release, so releases should be published manually. Automatic scheduling will be added in a future version of Strapi.
34+
:::
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
---
2+
title: Managing a release
3+
description: Instructions on how to manage a Release from the admin panel
4+
---
5+
6+
# Managing a release <EnterpriseBadge /> <CloudTeamBadge /> <FutureBadge /> <AlphaBadge />
7+
8+
Adding entries to a [release](/user-docs/releases/introduction) allow viewing them altogether on a single page.
9+
10+
<!-- TODO: add actual screenshots for both light and dark modes -->
11+
<ThemedImage
12+
alt="Release details"
13+
sources={{
14+
light: '/img/assets/releases/release-details.png',
15+
dark: '/img/assets/releases/release-details_DARK.png',
16+
}}
17+
/>
18+
19+
<br /><br />
20+
21+
From a release page, you can:
22+
23+
- edit the name of the release, or delete the release,
24+
<!-- - [adjust the view](#choose-how-entries-are-grouped) to display entries grouped either by locale or by content-type, -->
25+
- decide whether an entry will be published or unpublished with the release,
26+
<!-- - edit a specific entry or [remove](#remove-entries-from-a-release) it from the release, -->
27+
- and publish the release.
28+
29+
## Editing a release
30+
31+
You can rename a release. To do so, while on a release page:
32+
33+
1. Click on the ![More icon](/img/assets/icons/more.svg) button in the top right corner of the admin panel.
34+
2. Select ![Edit icon](/img/assets/icons/edit.svg) **Edit**.
35+
3. In the modal, change the name of the release in the _Name_ field.
36+
4. Click **Continue** to save the change.
37+
38+
<!-- TODO: re-add when implemented -->
39+
<!-- ## Choose how entries are grouped
40+
41+
A release page can display entries either grouped by locales or by content-type. To change how entries are grouped, click the **Group by …** dropdown and select an option from the list. -->
42+
43+
<!-- TODO: add screenshot? -->
44+
45+
## Publish or unpublish entries
46+
47+
A release includes multiple entries. You can set the state of each entry with the **Publish** and **Unpublish** action buttons. When the release itself is “published” then the desired actions will be simultaneously performed on each entry.
48+
49+
<!-- TODO: re-add when implemented -->
50+
<!-- ## Remove entries from a release
51+
52+
Entries can be removed from a release. To do so, click the three dots **…** at the end of the line of an entry and select the **Remove from release** button. -->
53+
54+
## Publishing a release
55+
56+
Publishing a release means that all the actions (publish or unpublish) defined for each entry included in the release will be performed simultaneously. To publish a release, click the **Publish** button in the top right corner of the admin panel.
57+
58+
:::caution
59+
Once a release is published, the release itself cannot be updated. You can not re-release that specific release with the same group of entries with some modifications; you must create another release.
60+
:::
61+
62+
## Deleting a release
63+
64+
You can delete a release. Deleting a release will only delete the release itself, but not the content-type entries included in the release. To delete a release, while on the release page:
65+
66+
1. Click on the ![More icon](/img/assets/icons/more.svg) button in the top right corner of the admin panel.
67+
2. Select ![Delete icon](/img/assets/icons/delete.svg) **Delete**.
68+
3. In the confirmation dialog, click ![Delete icon](/img/assets/icons/delete.svg) **Confirm**.

0 commit comments

Comments
 (0)