d75c63b6e8
<!-- Thanks for creating a PR! To make it easier for reviewers and everyone else to understand what your changes relate to, please add some relevant content to the headings below. Feel free to ignore or delete sections that you don't think are relevant. Thank you! ❤️ --> ## About the changes <!-- Describe the changes introduced. What are they and why are they being introduced? Feel free to also add screenshots or steps to view the changes if they're visual. --> ### Summary - Add `PROJECT_ARCHIVED` event on `EVENT_MAP` to use - Add a test case for `PROJECT_ARCHIVED` event formatting - Add `PROJECT_ARCHIVED` event when users choose which events they send to Slack - Fix Slack integration document by adding `PROJECT_ARCHIVED` ### Example The example message looks like the image below. I covered my email with a black rectangle to protect my privacy 😄 The link refers `/projects-archive` to see archived projects. <img width="529" alt="Slack message example" src="https://github.com/user-attachments/assets/938c639f-f04a-49af-9b4a-4632cdea9ca7"> ## Discussion points <!-- Anything about the PR you'd like to discuss before it gets merged? Got any questions or doubts? --> I considered the reason why Unleash didn't implement to send `PROJECT_ARCHIVED` message to Slack integration. One thing I assumed that it is impossible to create a new project with open source codes, which means it is only enabled in the enterprise plan. However, [document](https://docs.getunleash.io/reference/integrations/slack-app#events) explains that users can send `PROJECT_CREATED` and `PROJECT_DELETED` events to Slack, which are also available only in the enterprise plan, hence it means we need to embrace all worthwhile events. I think it is reasonable to add `PROJECT_ARCHIVED` event to Slack integration because users, especially operators, need to track them through Slack by separating steps, `_CREATED`, `_ARCHIVED`, and `_DELETED`. |
||
---|---|---|
.. | ||
.yarn/releases | ||
docs | ||
remote-content | ||
src | ||
static | ||
.gitignore | ||
.yarnrc.yml | ||
docusaurus.config.ts | ||
global.js | ||
package.json | ||
prepare-generated-docs.mjs | ||
README.md | ||
sidebars.ts | ||
tsconfig.json | ||
vercel.json | ||
yarn.lock |
Website
This website is built using Docusaurus 2, a modern static website generator.
Installation
In a terminal, cd into the website folder of the locally cloned unleash repository and then start the installation.
cd unleash/website
yarn install
Generate OpenAPI docs
yarn generate
Generate the Open API docs that live at Reference documentation > APIs > OpenAPI
Local Development
Before running the docs the first time, you'll need to generate external documentation, as described in the generate OpenAPI docs section.
yarn start
Start a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
Build
yarn build
This command generates static content into the build
directory and can be served using any static contents hosting service.
Cleaning dependencies and caches
If you're upgrading many dependencies, it's always good to delete the node_modules
directory, refresh yarn.lock
and clean the various caches.
rm -rf node_modules
rm -rf .docusaurus
rm -rf docs/reference/api/unleash
rm -rf yarn.lock
touch yarn.lock
Troubleshooting
TypeError: source_default(...).bold is not a function
If you get an error like this, it's probably due to a formatting issue within one of the markdown files. It could be
- unescaped angle brackets (markdown will try to parse
<your-key>
(when it's not quoted) as HTML, which breaks the build) - incorrectly formatted titles or missing pieces of files
- a lot of other stuff.
Component Figure was not imported, exported, or provided by MDXProvider as global scope
TypeError: source_default(...).bold is not a function
[ERROR] Unable to build website for locale en.
This error is very hard to debug, but there is a trick that appears to work (as shared in this discussion on docusaurus' repo):
In node_modules/@docusaurus/core/lib/client/serverEntry.js
, remove all references to chalk
. You can use a regex replace for that, by replacing chalk(\w|\.)+
with the empty string.
Depending on your editor, that regex might need more escapes. For instance, here's a command to run with evil-ex
in Emacs:
%s/chalk\(\w\|\.\)+//g
For macOS sed
, it'd be:
sed -i '' 's/chalk\(\w\|\.\)\+//g' node_modules/@docusaurus/core/lib/client/serverEntry.js
For GNU sed
:
sed -i 's/chalk\(\w\|\.\)\+//g' node_modules/@docusaurus/core/lib/client/serverEntry.js
That might turn your error into something like this:
[ERROR] Docusaurus server-side rendering could not render static page with path /reference/api/unleash/change-requests.
[ERROR] Docusaurus server-side rendering could not render static page with path /reference/api/unleash/feature-types.
[ERROR] Docusaurus server-side rendering could not render static page with path /reference/api/unleash/frontend-api.
[ERROR] Docusaurus server-side rendering could not render static page with path /reference/api/unleash/maintenance.
[ERROR] Docusaurus server-side rendering could not render static page with path /reference/api/unleash/notifications.
[ERROR] Docusaurus server-side rendering could not render static page with path /reference/api/unleash/personal-access-tokens.
[ERROR] Docusaurus server-side rendering could not render static page with path /reference/api/unleash/segments.
[ERROR] Docusaurus server-side rendering could not render static page with path /reference/api/unleash/service-accounts.
[ERROR] Docusaurus server-side rendering could not render static page with path /reference/api/unleash/telemetry.
[ERROR] Docusaurus server-side rendering could not render static page with path /reference/api/unleash/unstable.
Component Figure was not imported, exported, or provided by MDXProvider as global scope
Error: Unexpected: cant find current sidebar in context
[ERROR] Unable to build website for locale en.