-
Notifications
You must be signed in to change notification settings - Fork 137
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1130 from wpengine/canary
sync `main` <- `canary`
- Loading branch information
Showing
82 changed files
with
4,884 additions
and
164 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
name: Audit Dependencies | ||
|
||
on: pull_request | ||
|
||
jobs: | ||
audit_depedencies: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Audit for vulnerabilities | ||
run: npx audit-ci@^6 --config ./audit-ci.jsonc |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
{ | ||
"$schema": "https://github.com/IBM/audit-ci/raw/main/docs/schema.json", | ||
"moderate": true, | ||
"allowlist": [] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
36 changes: 36 additions & 0 deletions
36
internal/faustjs.org/blog/2021-12-03-upgrading-to-faustwp.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
--- | ||
title: Upgrading to FaustWP | ||
description: All you need to know about upgrading to FaustWP. | ||
slug: upgrading-to-faustwp | ||
hide_table_of_contents: true | ||
--- | ||
|
||
The WP Engine Headless (or WPE Headless) plugin has been renamed to FaustWP starting with version 0.7.0.<!--truncate--> Along with the rename, distribution of the plugin has moved off of WP Engine servers and into the official wordpress.org plugin repository. In order to continue receiving plugin updates and remain compatible with future versions of Faust.js NPM packages, site owners will need to do the following: | ||
|
||
1. Log in to your WordPress admin dashboard. | ||
2. Go to “Plugins -> Add New” in the admin sidebar. | ||
3. In the top right corner, enter "FaustWP" in the search box. | ||
4. Click the “Install Now” button. | ||
5. Once the installation is complete, click “Activate”. | ||
|
||
Activating FaustWP will automatically deactivate WP Engine Headless if it is installed and active on your site. **All plugin settings will be preserved, including your secret key.** You can now remove the old, deactivated WP Engine Headless plugin: | ||
|
||
1. Go to "Plugins -> Installed Plugins" in the admin sidebar. | ||
2. Verify that FaustWP is installed and active. | ||
3. Verify that WP Engine Headless is inactive. | ||
4. Delete WP Engine Headless. | ||
|
||
We have done our best to ensure a seamless upgrade experience, but we encourage users to review the [plugin changelog](https://faustjs.org/docs/changelog/faustwp) to evaluate any impacts these changes might have in their own applications. | ||
|
||
## Package Updates | ||
|
||
Version 0.7.0 of FaustWP is best suited for use with `@faustjs/core` version 0.14.0 or greater. As noted in the [changelog](https://faustjs.org/docs/changelog/core) for version 0.14.0: | ||
|
||
> The FaustWP plugin has deprecated the REST endpoint that `@faustjs/core` uses for authorization. Both the plugin and the `@faustjs/core` package will continue to work with the deprecated endpoint until it is removed in a future version. Make sure to always update your FaustWP plugin and `@faustjs` packages together to avoid any issues that may arise from incompatible versions. | ||
We recommend updating all of your Faust.js packages after installing the FaustWP plugin. | ||
|
||
### Changelogs | ||
- [@faustjs/core](https://faustjs.org/docs/changelog/core) | ||
- [@faustjs/next](https://faustjs.org/docs/changelog/next) | ||
- [@faustjs/react](https://faustjs.org/docs/changelog/react) |
38 changes: 38 additions & 0 deletions
38
internal/faustjs.org/blog/2022-07-06-the-future-of-faust.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
--- | ||
title: The Future of Faust.js | ||
description: An update on Faust.js, where it is and where it is going | ||
slug: the-future-of-faust | ||
hide_table_of_contents: true | ||
--- | ||
|
||
We launched this blog 7 months ago with a goal of keeping you informed of what is going on in the development of Faust.js as well as to help you get started using the framework in your own projects. To date, we simply have not prioritized keeping up here on the blog and it is time for that to change. | ||
|
||
<!--truncate--> | ||
|
||
Today we want to talk about where Faust.js is and where we're working on taking it in the future. It will be the first of many regular posts designed to tell the story of Faust.js and how it affects developers of all backgrounds. | ||
|
||
## Where Faust.js is Today | ||
|
||
First and foremost, the development of Faust.js is alive and well. When the last post was written in December we were a rather unorthodox team of two engineers working on understanding what Faust.js should be. | ||
|
||
Today the Faust.js team, known internally as Team Merlin, is made of of five engineers and an engineering manager and [we're still looking for one more staff/lead engineer to join our team](https://wpengine.wd1.myworkdayjobs.com/en-US/WP_Engine/job/Software-Engineer-IV--ATLAS---Themes-_JR100226). | ||
|
||
While we've expanded, we've moved much of our development process out of GitHub projects and into company tools that allow us to be more in tune with the needs of the organization and [Atlas](https://wpengine.com/atlas/) as well as allows us to more easily communicate the story of Faust.js to stakeholders throughout the company. | ||
|
||
Today we're revisiting this blog primarily as a way to update you on what we're doing now that we're currently not working in public. From this point forward we'll be updating the blog at least once every two weeks with the current accomplishments and next steps on our journey to ensure Faust.js is the leading framework for folks looking to develop headless sites with WordPress. | ||
|
||
## Where Faust.js is Going | ||
|
||
As [WP Engine](https://wpengine.com) has made a significant investment in the future of Faust.js by increasing the team working on it, it's time to talk to where we're currently spending our time. | ||
|
||
When Faust.js was first conceived a decision was made to go with [GQty](https://gqty.dev) as our data library as we thought it would be the simplest way for users to pull data from WordPress using [WPGraphQL](https://www.wpgraphql.com). While we largely were able to prove it was indeed simple, that simplicity came with complications. GQty proved a difficult choice for users to scale with as it over-abstracted enough of the data layer that modifying how a user was getting data from WordPress quickly became a difficult process. | ||
|
||
Today we're working on removing the limits imposed by choosing GQty by replacing it with the popular [Apollo library](https://www.apollographql.com). This will allow users to get what they need from WordPress in whatever way they need it. Users won't be constrained on the queries they run and will be able to more easily modify a default query to fit any use case imaginable. You can expect to see our work on this feature available in the 3rd quarter of 2022. | ||
|
||
As part of replacing GQty with Apollo, another shift in Faust.js since our last writing is that we've realized our target audience is not so much JavaScript developers forced to use WordPress but is, in fact, WordPress developers pivoting to headless sites. While the difference might sound trivial, the shift comes with a change of expectations that lead to numerous features in development. For instance, in the 3rd quarter of 2022 we also hope to release a template hierarchy feature that utilizes WordPress' core routing system, popularly known as [permalinks](https://wordpress.org/support/article/using-permalinks/), to power a developer experience that better utilizes the existing development skills of WordPress developers and agencies. | ||
|
||
While our audience might not be what we originally thought it was, that isn't to say we're not working on cutting edge features for JavaScript developers as well. From the ability to share components between your front end and WordPress' Block Editor to authentication and even advanced ways to handle use cases such as A/B testing and more there is a lot planned in our backlog and we can't wait to start rolling it out to you over the coming months. | ||
|
||
## Check Back Often For Updates From Our Latest Sprint | ||
|
||
Faust.js has a bright future and we look forward to sharing it with you. Check back here roughly every two weeks for news on where we're at and what we're working on and, as always, you can ask the team questions in our [GitHub issues](https://github.com/wpengine/faustjs) or on [our Discord server](https://developers.wpengine.com). We're looking forward to powering your project. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
--- | ||
title: Sprint 14 Update | ||
description: Updates from the teams work on Sprint 14 | ||
slug: sprint-14-update | ||
hide_table_of_contents: true | ||
--- | ||
|
||
Yesterday, July 19th, the team completed Sprint 14, which is simply our 14th [sprint](https://www.educba.com/what-is-agile-sprint/) of the year. This was one of more productive sprints, in terms of implementation, so far this year. We managed to release a new version of both the Faust.js library as well as the Faust WordPress plugin, we welcomed two new developers to the team and we worked hard to implement a way to help us better understand how folks are using the framework. Here's how it all breaks down: | ||
|
||
## Faust.js 0.15.7 and Faust WP 0.7.10 | ||
|
||
The Faust WordPress plugin was updated to version 0.7.10 last week and all Faust JavaScript libraries were updated to version 0.15.7. These new versions didn't bring about any new features but they did solve some issues folks were seeing as well as updated some of the dependencies Faust relies on. You can see a full list of all the changes we made in our [release notes](https://github.com/wpengine/faustjs/releases). | ||
|
||
## Welcome new developers | ||
|
||
In addition to new releases, our team also welcomed two new developers to the team bringing our total to 5 full-time developers focused solely on Faust. You'll see their contributions in our [GitHub repo](https://github.com/wpengine/faustjs/) and they will help us bring the next evolution of Faust into your hands as quickly as possible. | ||
|
||
We're not done here, though. We still have one more position open on our team for a staff developer. If you're interested in helping take Faust to the next level, [apply now](https://wpengine.wd1.myworkdayjobs.com/en-US/WP_Engine/job/Software-Engineer-IV--ATLAS---Themes-_JR100226) and let's talk. | ||
|
||
## New telemetry in Faust.js | ||
|
||
The big goal of Faust.js was in implementing some basic telemetry into Faust so that our teams and stakeholders have some measure on how the product is actually being used. Note that this telemetry, while code complete, has not launched in a release yet. | ||
|
||
To implement the telemetry we're using [Google Analytics](https://marketingplatform.google.com/about/analytics/), a common analytics partner in WP Engine products, to collect data on version information and other build parameters solely from the JavaScript builds completed with Faust. **All analytics are opt-in only** so new users, once launched, will see a prompt asking you if you're willing to login. This can safely be bypassed, for those interested in doing so, without sending us any data. While we'd love to see you participate in helping us collect build data, and hope you'll do so, failing to opt-in means nothing at all will be transmitted to Google or elsewhere. | ||
|
||
You can expect to see this in a new release in the coming months as we first finish a comprehensive privacy policy for the feature. | ||
|
||
## What's next | ||
|
||
In Sprint 15, which started yesterday, the team is focusing on implementing content previews in the next version of Faust as well as reducing some technical debt that has lead to issues on our GitHub repo. Expect to see a new, faster, release as a result at some point in the next two weeks. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
--- | ||
title: Sprint 15 Update | ||
description: Updates from the teams work on Sprint 15 | ||
slug: sprint-15-update | ||
hide_table_of_contents: true | ||
--- | ||
|
||
Yesterday the team working on Faust finished Sprint 15 and started work on our next Sprint, 16, which we will be in for the next two weeks. The theme of the sprint was to finish porting the post previews feature to the new version of Faust as well as to address as many [GitHub issues](https://github.com/wpengine/faustjs/issues) as we could. | ||
|
||
## What we accomplished | ||
|
||
Unfortunately we haven't yet finished the new preview feature as complexities of integrating the feature with the new Apollo library slowed the work down more than we would have liked. We should be able to complete it in the coming days but it was not completed as part of the sprint as we would have liked. | ||
|
||
We did, however, catch up on our backlog of issues as planned. This included reducing the client bundle size and upgrading to GQty 2.3.0. We hope this work will make life a bit easier for folks currently using Faust in production. | ||
|
||
## What's next | ||
|
||
Next up we're focusing solely on finishing out "plugin" system for Faust. This is a series of hooks that will allow folks to build on Faust for their own projects. Maybe you want to add in a feature or swap out something we're doing? No problem. Just like WordPress plugins you'll be able to extend Faust to fit your needs and, if you're so inclined, the needs of the community in general. | ||
|
||
While the plugin system is our primary goal for these two weeks we're also still finishing up post previews and working to ensure we can get some basic telemetry data on how folks are using the framework. The latter is being done in GA4 but, due to changes in GA4, will require a bit more work for us to be able to implement it. On the positive side this will make analytics even more private due to a proxy that can mask IP address and other data. On the downside, building that proxy will mean more work for the team in the coming days. It will be worth it, however, as it can help us build the features you need in the future. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
--- | ||
title: Sprint 16 Update | ||
description: Updates from the teams work on Sprint 16 | ||
slug: sprint-16-update | ||
hide_table_of_contents: true | ||
--- | ||
|
||
Hello folks! I’m Terri, one of the new software engineers working on the team developing Faust. I’ll be supplying the update on the team’s progress the last two weeks on sprint 16, as well as a quick peek at what we're working on for the remainder of August. | ||
|
||
## What we accomplished | ||
|
||
Yesterday, August 16th, the plugin system code was completed for the new version of Faust. The goal of this new plugin system is to allow developers to provide easy-to-implement solutions for themselves and other users. A plugin for this new version of Faust is a simple class with a constructor for options, and an “apply” method. This method has a function as an argument called `callHook`, which is a callback function to apply logic to certain types of hooks. For example, a developer may want to alter what data is fetched in the seed query, or what templates get resolved in the template resolver. Each of these actions now have a corresponding “hook” to which custom functionality can be applied. | ||
|
||
In addition to this, plugins in the new system now have `@wordpress/hooks` behind an experimental flag, as well as tests that ensure that a developer’s experimental plugins have their apply methods called while those that don’t have an apply method fail silently when specified in the `experimentalPlugins` config property. Testing also now ensures that the possible lack of the `experimentalPlugins` property does not introduce any adverse effects, too, allowing developers to tinker with building plugins with less implementation. | ||
|
||
Beyond the plugin system for the new version of Faust, we also completed an architecture document for a service to handle GA4’s new requirements with telemetry, ensuring that the team has a plan for keeping data anonymous and building a reliable reporting system. We implemented post previews and authorization for previews, too, so folks can examine posts while in the block editor. | ||
|
||
## What's next | ||
|
||
The team is now closing in on a fix for the breaking changes introduced when Next.js took middleware out of beta. The handleSitemapRequests function used in conjunction with Next.js 12.2 will once again allow developers to easily proxy their WordPress sitemap to their headless frontend once these code changes are approved and merged. | ||
|
||
In Sprint 17, we are also working on planning out our approach for implementing support for Next.js file-based pages. Our current data fetching conventions and abstractions work well inside the template hierarchy system, but we want to support Next.js based pages too, while maintaining the same level of functionality. Having this flexibility will help developers create pages outside of the template hierarchy without needing to create a page for every route, putting a wider range of options on the table. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
--- | ||
title: Sprint 17 Update | ||
description: Updates from the team's work on Sprint 17 | ||
slug: sprint-17-update | ||
hide_table_of_contents: true | ||
--- | ||
|
||
We finished Sprint 17 yesterday, our 17th 2-week Sprint of the year. Our current focus has been two-fold: first, to release a new version of Faust using Apollo as our GraphQL library and, second, to build a plan for how to best integrate Gutenberg (the block editor) into a headless site with the minimum amount of developer friction. As far as progress on both those endeavors is concerned, the Sprint was a success. | ||
|
||
## What we accomplished | ||
|
||
One of our more important features in Faust has been the support of Sitemaps as implemented by plugins such as [Yoast SEO](https://wordpress.org/plugins/wordpress-seo/) and others. While we've had the feature for a while, Next.js 12.2 [changed their middleware implementation rather significantly](https://nextjs.org/blog/next-12-2) leaving the feature broken for our users. We now have a fix in place that avoids using Next's middleware and hope to have it in your hands in the coming weeks. | ||
|
||
In addition to updating our sitemap feature, the team has also been learning Gutenberg development to better understand WordPress development as a whole. Most of our backgrounds are either in classic WordPress or in JavaScript, so Gutenberg, at least at the level we need to understand it, has been a learning experience for everyone this quarter. With the conclusion of Sprint 17 we feel we have enough experience with it to finally start looking at how we can use it to make headless development better. For example, what if you could re-use your components in both the editor and on your headless front-end? There are many questions and many avenues to pursue and, over the coming weeks, we'll be putting together a plan to do so. To me, personally, this is one of the most exciting possibilities for headless WordPress. Unlocking the potential of Gutenberg for headless sites will all for use and re-use of content on a scale that just isn't possible in classic WordPress and the potential is amazing. | ||
|
||
Finally, we also worked to scrub a number of bugs in the Sprint including upgrading dependencies and plenty of others. Look for the results in our next release coming soon. | ||
|
||
## What's next | ||
|
||
Our next Sprint will be focused on two things. First, better content previews for the next version of Faust. The new version will enable a whole new ability to easily develop headless WordPress sites, including its own plugin system and the ability to utilize a template system very similar to WordPress' own [template hierarchy](https://developer.wordpress.org/themes/basics/template-hierarchy/). Now we need to update our content previews to take advantage of it. | ||
|
||
Second, we're moving beyond learning Gutenberg development ourselves and will be spending time this upcoming Sprint developing a high-level plan for how to best utilize it in headless WordPress development. Expect to see the results of these plans starting in the 4th quarter of 2022. | ||
|
||
Finally, we'll be focusing heavily on documentation and other tasks to make sure you'll be able to hit the ground running when we re-release Faust at the end of September. We can't wait to show you what we've been working on here! |
Oops, something went wrong.
4097d6a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Check out the recent updates to your Atlas environment:
Learn more about building on Atlas in our documentation.
4097d6a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Check out the recent updates to your Atlas environment:
Learn more about building on Atlas in our documentation.
4097d6a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Check out the recent updates to your Atlas environment:
Learn more about building on Atlas in our documentation.
4097d6a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Check out the recent updates to your Atlas environment:
Learn more about building on Atlas in our documentation.