Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Giving Props to Blueprint Community members #21

Open
flexseth opened this issue Apr 12, 2024 · 6 comments
Open

Giving Props to Blueprint Community members #21

flexseth opened this issue Apr 12, 2024 · 6 comments
Labels
enhancement New feature or request v1

Comments

@flexseth
Copy link

Props for contributing to WordPress is a new concept that enables those who want to contribute an easy way to get started.

Maybe someone is just getting started and don't fully understand Pull Requests in GitHub, maybe they have that one really great idea they want to share, but don't know how to build it.

Let's figure out a way for them to get involved with the Blueprints Community and give credit for their contributions.

From Making WordPress post

In January 2022, a proposal was published on this blog to implement a new process within any GitHub repository under the WordPress organization to ensure anyone and everyone contributing to the project receives due thanks in the form of “props.”

One of the greatest things about open source is that contributions come in many shapes and sizes. Anyone can contribute regardless of skill set, experience, time zone, or background. There are countless ways for someone to get involved with open source projects.

WordPress is no different. Contributors submitting code modifications are only a small subset of the larger community. Recognizing all types of contributions is essential to establishing a healthy contributor base, and the responsibility falls on the project’s maintainers. Contributors who feel recognized and valued are more likely to continue contributing.

I'd like to introduce a proposal to give credit in some way to those who contribute to the Blueprints Community!

Existing limitations

The Props Bot is currently only available in the WordPress organization? How to expand props to the Blueprints Community?

Feedback is much appreciate as always 👍

@ironnysh
Copy link
Collaborator

Great idea, although using GitHub is a prerequisite to both things (getting Props and submitting a Blueprint to this gallery) :-)

Anyway, according to the announcement post you linked,

The bot can be used in any GitHub repository, not just ones under the WordPress organization.

Seems like all that's needed is to set up the Props Bot GitHub action.

@flexseth
Copy link
Author

The bot can be used in any GitHub repository, not just ones under the WordPress organization.

Thank you for the important distinction :)

@adamziel
Copy link
Contributor

+1

@adamziel adamziel added enhancement New feature or request v1 labels Apr 15, 2024
@bph
Copy link
Collaborator

bph commented Apr 18, 2024

To gauge the documentation needs when thinking about Contributor badges, looking at other teams will help:

The design team would also be involved to create the badge design for contributors and team members.
Most likely, playground would need an individual team...

It is also worth a discussion with the meta team if playground blueprint contributors should just receive meta Contributor badges and augment the team's badge documentation.
https://make.wordpress.org/meta/handbook/tutorials-guides/profile-badges/

@flexseth
Copy link
Author

@bph - Nice catch on the distinction.

What's the difference between someone who builds a PHP module to do something in Playground, and someone who submits a functioning Blueprint?

Would it be worthwhile as a "first contribution" to give credit for a Blueprint?

When committing code I believe this raises you to level of a repo Contributor.

Should there be two badges? Most teams don't have multiple badges.

You've raised a great question!

@adamziel
Copy link
Contributor

I added author information to GALLERY.md as an early form of recognition: #30

reimic pushed a commit to reimic/blueprints-library-ci that referenced this issue Jun 11, 2024
…ma (#23)

Solves the Blueprint parsing problem as follows:

* JSON Schema is the source of truth for the Blueprint data structure
* Model classes are generated from JSON Schema
* Input Validation is done against the JSON Schema
* Mapping validated input into model instances is indirectly done based on the JSON Schema

## Summary of the approach

We use [Janephp](https://github.com/janephp/janephp/) to infer the PHP model class structure from the JSON schema

We then use Jane's output to generate PHP code using [Nette PHP generator](https://github.com/nette/php-generator):

* Model classes
* Interfaces for groups of related classes: `StepDefinitionInterface`, `ResourceDefinitionInterface`.
* Interface resolution map for the [JsonMapper library](https://jsonmapper.net/).
* PHP docstrings with more accurate types than Jane to guide the mapping process

From there, the data pipeline looks as follows:

1. Parse raw JSON
2. Validate it with Opis
3. Map it into PHP models using JsonMapper

Or, if you're consuming the PHP API directly:

1. Create Model instances
2. Validate them with Opis

## Remaining work

- [ ] Solve merge conflicts

## Rationale

Parsing and mapping JSON [in TypeScript is a simple problem, but in PHP it's surprisingly involved](WordPress/blueprints#13 (comment)). This PR combines three previously explored approaches into a single pipeline:

* WordPress/blueprints#17
* WordPress/blueprints#19
* WordPress/blueprints#21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request v1
Projects
None yet
Development

No branches or pull requests

4 participants