You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -95,6 +95,12 @@ Every PLIP must be approved by the designated team.
95
95
96
96
## Implement your PLIP
97
97
98
+
(plip-setup-instructions-label)=
99
+
100
+
```{note}
101
+
This section assumes you have read and followed the instructions in {doc}`index` to set up your development environment, up until {ref}`contributing-core-edit-packages-label`.
102
+
```
103
+
98
104
You can start the development at any time, but if you intend to modify Plone core, it is a good idea to wait to see if your idea is approved.
99
105
100
106
@@ -114,15 +120,12 @@ You can start the development at any time, but if you intend to modify Plone cor
114
120
115
121
### Create a new PLIP branch
116
122
117
-
Create a buildout configuration file for your PLIP in the `plips` folder of {file}`buildout.coredev`.
118
-
119
-
Give it a descriptive name, starting with the PLIP number, for example, {file}`plip-1234-widget-frobbing.cfg`.
123
+
Create a buildout configuration file for your PLIP in the `plips` folder of `buildout.coredev`.
124
+
Its name should follow the pattern `plip-repository-issue_number-description.cfg`.
125
+
For example, {file}`plip-volto-1234-widget-frobbing.cfg`.
120
126
121
-
The PLIP number is your PLIP's issue number.
122
-
123
-
This file will define the branches you're working with in your PLIP, along with other buildout configuration.
124
-
125
-
It should look something like the following, such as in a file {file}`plips/plip-1234-widget-frobbing.cfg`.
127
+
This file will define the branches for your PLIP, along with other buildout configuration.
128
+
The following is example content for the file {file}`plips/plip-volto-1234-widget-frobbing.cfg`.
Use the same naming convention when you branch existing packages.
148
-
You should always branch packages when working on PLIPs.
149
151
150
152
151
-
### Working on a PLIP
153
+
### Work on a PLIP
152
154
153
-
To work on a PLIP, you bootstrap buildout, and then invoke buildout with your PLIP configuration:
155
+
To work on a PLIP, assuming you have followed the {ref}`PLIP set up instructions <plip-setup-instructions-label>`, you can invoke buildout with your PLIP configuration as follows.
If you are using a {file}`local.cfg` to extend your PLIP file with some changes that you do not want to commit accidentally, be aware that you need to override some settings from {file}`plipbase.cfg` to avoid some files being created in the {file}`plips` directory or in the directory above the buildout directory.
162
-
This is done as shown below.
163
-
164
-
```ini
165
-
[buildout]
166
-
extends = plips/plip-1234-widget-frobbing.cfg
167
-
develop-eggs-directory = ./develop-eggs
168
-
bin-directory = ./bin
169
-
parts-directory = ./parts
170
-
sources-dir = ./src
171
-
installed = .installed.cfg
172
-
173
-
[instance]
174
-
var = ./var
161
+
```{seealso}
162
+
See {ref}`contributing-core-test-locally-label`, {ref}`contributing-core-change-log-label`, and {ref}`contributing-core-create-a-pull-request-label`.
175
163
```
176
164
177
165
178
-
### Finishing up
166
+
### Finish up
179
167
180
-
Before marking your PLIP as ready for review, please add a file to give a set of instructions to the PLIP reviewer.
181
-
This file should be called {file}`plip_<number>_notes.txt`.
168
+
Before marking your PLIP as ready for review as a pull request, add a file to give a set of instructions to the PLIP reviewer.
169
+
This file should be called {file}`plip_<repository>_<number>_notes.txt`.
182
170
This should include, but is not limited to:
183
171
184
-
- URLs pointing to all documentation created and updated
185
-
- Any concerns and issues still remaining
186
-
- Any weird buildout things
172
+
-URLs pointing to all documentation created and updated
173
+
-Any concerns and issues still remaining
174
+
-Any weird buildout things
187
175
188
-
Once you have finished, update your PLIP issue to indicate that it is ready for review.
189
-
The Framework Team will assign 2-3 people to review your PLIP.
176
+
Once you have finished, update your PLIP issue and pull request to indicate that it is ready for review.
177
+
The designated team will review your PLIP.
190
178
They will follow the guidelines listed at {doc}`plip-review`.
191
179
192
-
After the PLIP has been accepted by the Framework Team and the release managers, you will be asked to merge your work into the main development line.
193
-
Merging the PLIP in is not the hardest part, but you must think about it when you develop.
194
-
195
-
You'll have to interact with a large number of people to get it all set up.
180
+
After the PLIP has been accepted by the designated team and the release managers, you will be asked to merge your work into the main development line.
196
181
197
182
The merge may have unintended interactions with other PLIPs coming in.
198
183
During the merge phase you must be prepared to help out with all the features and bugs that arise.
199
184
200
185
If all went as planned, the next Plone release will carry on with your PLIP in it.
201
186
You'll be expected to help out with that feature after it's been released (within reason).
202
-
203
-
204
-
## Frequently asked questions about PLIPs
205
-
206
-
This section provides detailed answers to common questions about PLIPs.
207
-
208
-
209
-
### PLIP or bug fix?
210
-
211
-
In general, anything that changes the API of Plone in the backend or the user interface (UI) on the front end should be filed as a PLIP.
212
-
When in doubt, submit it as a PLIP.
213
-
The Framework Team will reclassify it if your proposal falls below the threshold.
214
-
If the change you are proposing is not in the scope of a PLIP, a GitHub pull request or issue is the right format.
215
-
The key point here is that each change must be documented, allowing it to be tracked and understood.
216
-
217
-
218
-
### Who can submit PLIPs?
219
-
220
-
Anyone who has signed a Plone Contributor Agreement can work on a PLIP.
221
-
222
-
```{todo}
223
-
The FWT no longer participates in PLIPs.
224
-
Recommend deletion of next two paragraphs.
225
-
```
226
-
The Framework Team is happy to help you at any point in the process.
227
-
228
-
When the PLIP is accepted, a Framework Team member will "champion" your PLIP and follow up to its completion.
229
-
230
-
231
-
### What is a PLIP champion?
232
-
233
-
```{todo}
234
-
This section is no longer in practice.
235
-
Recommend deletion.
236
-
```
237
-
238
-
When you submit your PLIP and it is approved, a Framework Team member will take on the role of champion for that PLIP.
239
-
240
-
They are there to help you through completion, answer questions, and provide guidance.
241
-
242
-
A champion fulfills the following tasks:
243
-
244
-
- Answer any questions the PLIP implementor has, technical or otherwise.
245
-
- Encourage the PLIP author by constantly giving feedback and encouragement.
246
-
- Keep the implementer aware of timelines, and push to get things done on time.
247
-
- Assist with finding additional help when needed to complete the implementation in a timely matter.
248
-
249
-
Keep in mind that champions are volunteers as well, and have other tasks in life.
250
-
That means you will have to play an active role in asking for help or guidance.
251
-
252
-
253
-
### Can I get involved in other ways?
254
-
255
-
If you want to experience the process and how it works, help us review PLIPs as the implementations finish up.
256
-
257
-
Check the status of PLIPs at https://github.com/search?q=path%3A%2Fplone+label%3A%2203+type%3A+feature+%28plip%29%22++&type=issues&ref=advsearch&state=open.
258
-
259
-
Then, follow the instructions for {doc}`reviewing a PLIP <plip-review>`.
260
-
261
-
262
-
### When can I submit a PLIP?
263
-
264
-
Today, tomorrow, any time!
265
-
266
-
After the PLIP is accepted, the Framework Team will try to judge complexity and time to completion, and assign it to a milestone.
267
-
268
-
269
-
### When is the PLIP due?
270
-
271
-
**Summary: As soon as you get it done.**
272
-
273
-
Ideally, a PLIP should be completed for the release to which it's assigned.
274
-
Sometimes life gets in the way, and a PLIP may have to be re-assigned to the following release.
275
-
276
-
In general, PLIPs shouldn't take more than a year, otherwise they should be closed. A new PLIP can follow up if there is more capacity to see it through.
277
-
278
-
279
-
### What happens if your PLIP is not accepted?
280
-
281
-
If a PLIP isn't accepted in core, it doesn't mean it's a bad idea.
282
-
It is often the case that there are competing implementations, and the community wants to see it vetted as an add-on before "blessing" a particular implementation.
0 commit comments