ref
https://linear.app/ghost/issue/ENG-1989/disable-jobqueuemanager-logging-in-zuul
- The `JobQueueManager` generates a lot of logs that are useful for debugging, but they were all at log level `info`.
- This commit demotes these logs to the `debug` log level, which should
reduce the noise while making them easy to
re-enable if needed.
ref
https://linear.app/ghost/issue/ENG-1989/disable-jobqueuemanager-logging-in-zuul
- The `JobQueueManager` generates a lot of logs that are useful for debugging, but they were all at log level `info`.
- This commit demotes these logs to the `debug` log level, which should
reduce the noise while making them easy to
re-enable if needed.
ref https://linear.app/ghost/issue/AP-700/explore-ui-development-in-ap
This PR is about integrating ActivityPub with the new design system, so that we can start using Shade in a real world application. In this early version the TailwindCSS config is taken from Shade but the custom styles of Shade and the AdminX Design System are merged. This is needed so that we can keep using the old components without breaking functionality.
ref https://github.com/TryGhost/Ghost/pull/22127
The update to the Portal release process has now been tested on main, it
would be good to get Search & Comments updated to the same process so
that it's easier to reason about releasing all of them.
Refs https://linear.app/ghost/issue/AP-735
- When a user boosts/reposts something it should show up in their profile section in ghost in both feed and profile modal.
This will be used for search and comments too, but I want to start with just
one app to get things going. Key things the script does:
- Enforces that we're not on main & have clean working dir
- Creates a well structured commit message w/ basic changelog
- Updates the package.json and default config
The script explicitly does not push anything to GitHub or to NPM, giving us
more control about the contents of the commit
This uses the same approach that we have for admin-x-activitypub. When a
version bump for the @tryghost/portal package is commited to the `main` branch,
we will build the package and then publish it to npm, as well as purging the
jsdelivr cache of the last version.
no refs
Clean up includes:
- Removing unused queries (`inbox`, `following`, `followers`)
- Renaming of query hooks to be consistent with other hooks
- Fixed `useProfile*ForUser` fns as these where using the incorrect
handle to setup the API client
- Refactored query keys to make mutations easier to reason about
- Fixed `follow` / `unfollow` mutations not working as expected
no issue
- The invite tests were signing out as the owner user and then signing
in as a user with different privileges. At the end of the test, it was
left in this state, so the next file run by that playwright worker was
still logged in as a user with lower than owner privileges so e.g. the
settings couldn't be accessed.
- This change signs out from the newly created user and signs back in as
the owner user after each of the invites tests.
no issue
- This commit includes a number of changes to the package.json scripts
for running Ghost in docker locally for development.
- In keeping with the pattern of `yarn docker:*` commands running actual
`docker compose` commands, I renamed `yarn docker:setup` to `yarn
setup:docker` since this is a script that runs locally, rather than in
docker
- Modified the `yarn docker <command>` script to remove `yarn`, so you
can now use this to run any arbitrary command in a disposable container
- Added `yarn docker:build` as a shortcut to build the container
- Added `yarn docker:shell` as a shortcut for launching a bash shell in
a disposable container
- Added `yarn docker:restart` command to stop and restart all background
services in detached mode
- Removed `yarn compose` script for the devcontainer setup, to avoid
confusion
no issue
- I had plans to use this environment variable for the docker compose
setup, but haven't implemented anything with it yet — removing it for
now since it's not doing anything at the moment.
ref https://linear.app/ghost/issue/AP-706/add-repost-count-so-that-the-ui-can-display-the-count
- When you repost (or derepost) a post, the stats counter will now nicely animate into a larger (or smaller) number, with only the relevant digits animating and the others staying in place. We’re using a reusable hook for this.
- Updated stat counter numbers to also change the color when the post is liked or reposted by the currently logged in user
- Fixed like and post state not persisting when opening a post/note in the drawer without refreshing
- Bumped the package
---------
Co-authored-by: Michael Barrett <mike@ghost.org>
no issue
- The i18n browser test was setting the site language to 'fr', and this
state was carrying over to other tests which broke assertions based on
the english text in portal. This caused portal tests to generally be
flaky, since it would break a somewhat random test based on the order
they are executed in.
- This resets the language back to english, so we are in a consistent
state for future tests.
no issue
The external media inliner currently fails to process images in a
`srcset` attribute.
This PR extends the regexp to detect more valid URLs, `srcset`
attributes is a common example, and background image URLs in quotes is
another.
- after discussing on a code review, we agreed the existing code was
very verbose and it was hard to reason about
- this is because of the incredibly long if-statements we have lingering around
- the general approach here was to extract all the includes into
variables at the top, replace them in the code and then simplify the logic
- whilst doing this, I wrote some more tests to cover the other cases
- this commit also switches to assert, as it's neater to write the
assertions in tests
ref https://linear.app/ghost/issue/AP-699
- when the user clicks again on the Repost icon, we undo the Repost
action, by calling the corresponding API endpoint `POST
/actions/derepost/:id`
- UX/UI and copy are still WIP
- at this stage, we're still missing acceptance tests in the frontend
app. We will be starting acceptance testing in a separate commit
ref https://linear.app/ghost/issue/PRO-1359
- Load tests showed a performance improvement of 35% by turning off
stdout logging. The usage of PrettyStream causes write performance on
high traffic conditions to degrade.
no issue
- The publish and email post browser test was flaking often due to a
race condition — if the Publish button is clicked before the post has
saved, the slug isn't updated yet. When we then visit the published post
with the expected slug, we get a 404.
- This change will wait for the post to finish saving before publishing
the post, rather than arbitrarily waiting 100ms and hoping it's fully
saved by then.
no issue
- The browser tests for scheduling posts were flaking/failing because
the time was set to `00:00`, which is invalid and should reset the time
to "a few seconds from now", but the test was sometimes able to
"Continue" before the validation logic could run on blur. This left the
actual scheduled time set to `00:00`, which then caused the following
assertions to fail.
- I've tried to replicate this race condition manually to confirm it's
not a bug that a user could actually reach, but I haven't been able to.
I suspect that playwright's `.fill()` and/or `.click()` method behave
slightly differently than expected, which creates this race condition.
no issue
- The `yarn dev` command accepts dash-dash-args to conditionally build &
run other apps, like portal, comments, etc.
- Passing these flags to the docker compose setup directly doesn't work,
so the only way to run these apps in docker was to either change the
command in the Dockerfile or override the command in the `compose.yml`
file
- This commit extends `yarn dev` to also check for the
`GHOST_DEV_APP_FLAGS` environment variable for these flags, which can be
forwarded into the container and make it easier to run these apps using
docker compose.
no issue
- Ghost would sometimes crash because it was booting before the database
service was ready (even if the container had already started). This
commit tells `docker compose` to only start the ghost service once the
`mysql` and `redis` services have passed their health checks
ref https://linear.app/ghost/issue/AP-695/show-a-notification-when-someone-reposts-your-content
- When someone reposts your post or note, you’ll now receive a notification. If multiple accounts repost the same piece of content, those notifications will be grouped together, but only if they’re fetched as the same page of notifications.
- Converted functions to React components
- Bumped the package
- only some small micro-optimizations found whilst browing CPU profiles
- we can remove lodash from a sanitize plugin method (needs an empty object
fallback because Object.keys is less forgiving than _.keys and there are some
tests which don't fully initialize the model)
- also converts the data-manipulation plugins into for-loops because
there are more native than using lodash, and it means we can remove
lodash from this file too
- lodash is a bit of a perf burn on extreme hotpaths, so it's good to
clean it up where it's not needed, and native JS is often way faster
- adds a bit of JSDoc to help with editor autocomplete
no issue
- offers management has moved to the Admin-X-Settings app but the old Admin code was left hanging around
- removed all of the old offers screens related code and styles