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
Projects must provide their own project p2 repository for their own project and updates.
251
-
Projects must [optimize their p2 repositories](https://github.com/eclipse-equinox/p2/blob/master/docs/p2_index.md)
252
-
to reduce bandwidth utilization and provide a better install and update experience for users.
253
-
254
-
In addition, they must provide their artifacts and metadata in a specified format
255
-
and method to allow at least parts of their repository to be aggregated and mirrored to a common repository.
256
-
The [current process](Contributing_to_Simrel_Aggregation_Build.md) may be modified throughout the year, if improvements can be made.
257
-
258
-
Feature "includes" must be strict,
259
-
that is "include" an exact version of that other feature.
260
-
This is required so installs and builds can be repeatable independent of the exact day of the install or the exact repos enabled.
261
-
This is the way things are,
262
-
and have been for years,
263
-
and this statement is just making it explicit since technically it is possible for people to use some p2 publishers that don't have this predictability or repeatability
264
-
(which can certainly be appropriate in some contexts, just not the Simultaneous Release repository).
265
-
While there may, in the future, be new mechanisms that allow some "line up collection" to be specified,
266
-
it will be something new, not changing the meaning of feature "includes" element via p2 metadata.
267
-
268
-
For similar reasons, the repositories produced and contributed must use p2 publishers that produce greedy='false' in the content metadata for runtime-optional dependencies.
269
-
See and the [p2 Installable Units](https://github.com/eclipse-equinox/p2/blob/master/docs/Installable_Units.md) for some history and details on this issue of greedy versus non-greedy requirements.
270
-
But in brief, to have a runtime-optional dependency be non-greedy is important for several reasons,
271
-
especially in an IDE environment.
272
-
First it gives ultimate control over what is installed to the user,
273
-
based on their feature selection,
274
-
instead of depending on what happens to be available from the repositories they are pointing to at that moment it time.
275
-
It also makes it much easier for adopters to be able to predict (and maintain) what their users have installed.
276
-
In fact, if something is runtime-optional,
277
-
but pulled into an install because someone did not specify greedy='false' meta-data,
278
-
there is no way an adopter can provide a patch feature to one of their customers if that optional bundle causes a bug.
279
-
280
-
Everyone's p2 repositories must make use the of p2.mirrorsURL property.
281
-
For "how to" information, see [p2.mirrorsURL](https://github.com/eclipse-equinox/p2/blob/master/docs/p2_index.md).
282
-
Note: this is not really a "Simultaneous Release Requirement" but is required of any p2 repository on Eclipse Foundation infrastructure,x
283
-
and is just documented here to help spread the word and educate newcomers.
284
-
285
-
Similar to p2.mirrorsURL attribute, a well-behaved, well-optimized p2 repository should contain a p2.index file.
286
-
This is especially important for "composite repos" and prevents unnecessary "round trips" to server looking for files.
287
-
For how-to instructions, see the [p2.index](https://github.com/eclipse-equinox/p2/blob/master/docs/p2_index.md).
288
-
Again, this is not so much a "Simultaneous Release Requirement" but is recommended of any p2 repository on Eclipse Foundation infrastructure,
289
-
and is just documented here to help spread the word and educate newcomers.
248
+
### Do not include non-project content in features
249
+
250
+
It's been common practice to include third-party bundles in a `feature.xml`:
0 commit comments