Declarative Blueprints
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- javascript, php
- Domain
- tooling
Research direction
No implementation files or tests are named. Start by reviewing the proposed JSON format, the listed feature coverage, and the open questions; done means the declarative API format and scope are agreed and the important Blueprint features are covered.
Written by the indexing model from the issue text.
Description
Blueprints offer an imperative step-by-step API which is powerful but also complex.
Hypothesis: 99% of Blueprints will only need to declare the necessary ingredients, regardless of the order in which they're applied.
Here's what it could look like:
{
"landingPage": "/wp-admin/post-new.php",
"plugins": [
"gutenberg",
"classic-editor",
"https://mysite.com/plugin.zip",
{ "resource": "url", "https://mysite.com/plugin.zip" }
],
"themes": [ "adventurer", "twentytwentyfour" ],
"activeTheme": "adventurer",
"login": true,
"siteOptions": {
"blogname": "My site!"
}
}
Let's use this issue to discuss, explore, and iterate on different formats.
Done is
The most important Playground features are covered by the declarative API. In particular:
- Plugins
- Themes
- Site options
- PHP constants
- Importing content
- Importing SQL (? to be determined)
- PHP.ini entries
- Writing a file tree from a URL/filesystem to a directory
- ...anything else?
Open questions
- Should this data format attempt to accept data like posts, custom post types, user meta, and so on? Would that be a feature creep? Or would a rudimentary support be useful, and for more features devs could switch to WXZ, SQL, or PHP code?
Benefits
- Simplicity
- A better foundation for Merging Blueprints in the future
- Dominant language
- PHP
- Stars
- 61
- Forks
- 23
- Avg merge
- 20h 9m
- Merged PRs (30d)
- 7
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- Ships a Dockerfile or Docker Compose file
- No pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from WordPress/php-toolkit
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
WordPress/php-toolkit#313 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 58/100
WordPress/php-toolkit#306 ·
Maintainers usually reply within 1 day
-
WPCS complianceOpen
Difficulty 4/5 3-5 days Newbie friendliness 35/100
WordPress/php-toolkit#157 · 1 reaction ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
WordPress/php-toolkit#138 · 7 comments · 2 reactions ·
Maintainers usually reply within 1 day
-
[Blueprints v2] Constraint the Blueprint bundle formatPossibly taken @JanJakes claimed this 434 days ago. OpenBlueprints enhancement
WordPress/php-toolkit#132 · 4 comments · 1 assignee ·
Maintainers usually reply within 1 day
All issues in WordPress/php-toolkit
Similar issues
-
Talk Review
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
socallinuxexpo/scale-drupal#351 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
code4romania/cpc#47 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
mautic/api-library#351 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
nunomaduro/collision#371 ·
-
Lead create/update: a product row without a "product_id" key passes LeadForm validation and fails in the database (500)Possibly taken @Arslan-TR claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
krayin/laravel-crm#2681 ·
Maintainers usually reply within 2 days