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

Update site - "Eclipse Platform SDK" feature is missing #2126

Closed
Phillipus opened this issue Jun 12, 2024 · 24 comments
Closed

Update site - "Eclipse Platform SDK" feature is missing #2126

Phillipus opened this issue Jun 12, 2024 · 24 comments
Labels
bug Something isn't working

Comments

@Phillipus
Copy link

Since Eclipse 4.30 the "Eclipse Platform SDK" feature is missing from the update site.

  1. In Eclipse open the "Install New Software" dialog
  2. Select https://download.eclipse.org/eclipse/updates/4.32 (or 4.30 or 4.31) as the update site
  3. Ensure "Group items by category" is checked
  4. Try to select something from the "Eclipse Platform SDK" category. It should contain the "Eclipse Platform SDK" feature but it doesn't. In fact even if "Group items by category" is unchecked the "Eclipse Platform SDK" feature is missing.
Screenshot 2024-06-12 at 16 01 41



In previous releases the "Eclipse Platform SDK" feature was present. Example:

Screenshot 2024-06-12 at 16 17 45
@Phillipus Phillipus added the bug Something isn't working label Jun 12, 2024
@vogella
Copy link
Contributor

vogella commented Jun 12, 2024

I think you have to use the now. IIRC the SDK feature was removed. cc @HannesWell who might know more details

@HannesWell
Copy link
Member

I'm not aware that the org.eclipse.sdk feature was removed and it is still in (heavy?) use.
But I also see it being present when looking at https://download.eclipse.org/eclipse/updates/4.32/R-4.32-202406010610/features

@Phillipus
Copy link
Author

I extracted the content.xml file from https://www.eclipse.org/downloads/download.php?file=/eclipse/updates/4.32/R-4.32-202406010610/content.jar and compared it with the one from https://www.eclipse.org/downloads/download.php?file=/eclipse/updates/4.29/R-4.29-202309031000/content.jar and there's a whole section missing for org.eclipse.platform.sdk.

This is some of that xml:

<unit id="org.eclipse.platform.sdk" version="4.29.0.I20230903-1000">
    <update id="org.eclipse.platform.sdk" range="[4.0.0,4.29.0.I20230903-1000)" severity="0" description="An update for 4.x generation Platform SDK"/>
    <properties size="5">
        <property name="org.eclipse.equinox.p2.name" value="Eclipse Platform SDK"/>
        <property name="org.eclipse.equinox.p2.type.product" value="true"/>
        <property name="org.eclipse.equinox.p2.type.group" value="true"/>
        <property name="org.eclipse.equinox.p2.description" value="4.29 Release of the Platform SDK."/>
        <property name="org.eclipse.equinox.p2.provider" value="Eclipse.org"/>
    </properties>

(Note, I have no need of this feature myself, I'm just reporting it in case this is a bug)

@akurtakov
Copy link
Member

This is result of #1235 in which products and features have been reduced to more manageable list.

@Phillipus
Copy link
Author

This is result of #1235 in which products and features have been reduced to more manageable list.

OK, thanks for the info. I just thought I would report this in case of problems.

As the group category "Eclipse Platform SDK" is now empty should that also be removed? (Sorry, I don't know where/how that is so can't provide PR)

@HannesWell
Copy link
Member

This is result of #1235 in which products and features have been reduced to more manageable list.

That's right. Sorry I assumed we are talking about a feature. But if you are looking for a replacement in your target-platform, I suggest to use the org.eclipse.sdk feature. It should contain all artifacts previously contained in the platform.sdk.product and some more.

As the group category "Eclipse Platform SDK" is now empty should that also be removed? (Sorry, I don't know where/how that is so can't provide PR)

That sounds reasonable, but I cannot find where it is defined.
https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/blob/de6180058bf13be5f9412418578e4b31a37c391c/eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/category.xml
does not define any category and if search all sdk repos for Eclipse Platform SDK I don't get hits that seem to be associated.
Are you sure the Eclipse Platform SDK category is still there? If I check the 4.32 content.jar I can't find it.

@Phillipus
Copy link
Author

Phillipus commented Jun 12, 2024

Are you sure the Eclipse Platform SDK category is still there? If I check the 4.32 content.jar I can't find it.

It's showing in the update dialog. Strange.

@merks
Copy link
Contributor

merks commented Jun 13, 2024

One has to look in the right place. A release repository is a composite:

<?xml version='1.0' encoding='UTF-8'?>
<?compositeMetadataRepository version='1.0.0'?>
<repository name='The Eclipse Project repository' type='org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository' version='1.0.0'>
  <properties size='3'>
    <property name='p2.timestamp' value='1718200308702'/>
    <property name='p2.compressed' value='true'/>
    <property name='p2.atomic.composite.loading' value='true'/>
  </properties>
  <children size='2'>
    <child location='categories'/>
    <child location='R-4.32-202406010610'/>
  </children>
</repository>

So you have to look here:

https://download.eclipse.org/justj/?file=eclipse/updates/4.32/categories

Where that comes from is not yet clear.

It defines its contents by requiring IU org.eclipse.platform.sdk:

        <unit
            id="org.eclipse.platform.sdk.categoryIU"
            version="0.0.0">
            <properties size="2">
                <property
                    name="org.eclipse.equinox.p2.name"
                    value="Eclipse Platform SDK" />
                <property
                    name='org.eclipse.equinox.p2.description'
                    value='Minimum version of Eclipse with source and documentation, no PDE or JDT.' />
                <property
                    name="org.eclipse.equinox.p2.type.category"
                    value="true" />
            </properties>
            <provides size="1">
                <provided
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.platform.sdk.categoryIU"
                    version="0.0.0" />
            </provides>
            <requires size="1">
                <required
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.platform.sdk"
                    range="0.0.0" />
            </requires>
            <touchpoint
                id="null"
                version="0.0.0" />
        </unit>

And that has been removed.

@merks
Copy link
Contributor

merks commented Jun 13, 2024

@MohananRahul

I really can't find where this comes from. E.g., here it is again in the 4.33-I-builds:

https://download.eclipse.org/eclipse/updates/4.33-I-builds/categories/content.jar

Maybe it's just copied from one place to another each time.

The generated report:

https://download.eclipse.org/oomph/archive/reports/download.eclipse.org/eclipse/updates/4.33-I-builds/index.html

Shows that it's empty:

image

@MohananRahul
Copy link
Contributor

@MohananRahul

I really can't find where this comes from. E.g., here it is again in the 4.33-I-builds:

https://download.eclipse.org/eclipse/updates/4.33-I-builds/categories/content.jar

Maybe it's just copied from one place to another each time.

The generated report:

https://download.eclipse.org/oomph/archive/reports/download.eclipse.org/eclipse/updates/4.33-I-builds/index.html

Shows that it's empty:

image

This is copied from template format while creating new stream. https://download.eclipse.org/eclipse/updates/template_repo/

@MohananRahul
Copy link
Contributor

@MohananRahul
Copy link
Contributor

Removed Empty category:

image

@Phillipus
Copy link
Author

Can confirm the empty category is gone now in the 4.30, 4.31 and 4.32 update sites. Thanks!

@akurtakov
Copy link
Member

CLosing as per previous comments

@merks
Copy link
Contributor

merks commented Jun 13, 2024

@MohananRahul

Thank you! 😀

@HannesWell
Copy link
Member

Thank you for fixing that!

Ideally these categories would be defined in some 'source' files and not only in binaries.

Do you think this would be possible?

@merks
Copy link
Contributor

merks commented Jun 14, 2024

Can Tycho build the following content with a category.xml with only category definitions, building only a content metadata repository not an artifact repository? Note that the things included in each category will not necessarily exist and will not be included in the site itself. I think that's all a bit tricky and is likely not supported.

<?xml version="1.0" encoding="UTF-8"?>
<?metadataRepository class='org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository' version='1.0.0'?>
<repository
    name="The Eclipse Project Updates"
    type="org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository"
    version="1.0.0">
    <properties size="2">
        <property
            name="p2.compressed"
            value="true" />
        <property
            name="p2.timestamp"
            value="1235426489722" />
    </properties>
    <units size="8">
        <unit
            id="org.eclipse.equinox.target.categoryIU"
            version="0.0.0">
            <properties size="2">
                <property
                    name="org.eclipse.equinox.p2.name"
                    value="Equinox Target Components" />
                <property
                    name='org.eclipse.equinox.p2.description'
                    value='Features especially useful to install as PDE runtime targets.' />
                <property
                    name="org.eclipse.equinox.p2.type.category"
                    value="true" />
            </properties>
            <provides size="1">
                <provided
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.equinox.target.categoryIU"
                    version="0.0.0" />
            </provides>
            <requires size="1">
                <required
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.equinox.sdk.feature.group"
                    range="0.0.0" />
            </requires>
            <touchpoint
                id="null"
                version="0.0.0" />
        </unit>
        <unit
            id="org.eclipse.platform.sdk.categoryIU"
            version="0.0.0">
            <properties size="2">
                <property
                    name="org.eclipse.equinox.p2.name"
                    value="Eclipse Platform SDK" />
                <property
                    name='org.eclipse.equinox.p2.description'
                    value='Minimum version of Eclipse with source and documentation, no PDE or JDT.' />
                <property
                    name="org.eclipse.equinox.p2.type.category"
                    value="true" />
            </properties>
            <provides size="1">
                <provided
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.platform.sdk.categoryIU"
                    version="0.0.0" />
            </provides>
            <requires size="1">
                <required
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.platform.sdk"
                    range="0.0.0" />
            </requires>
            <touchpoint
                id="null"
                version="0.0.0" />
        </unit>
        <unit
            id="org.eclipse.sdk.ide.categoryIU"
            version="0.0.0">
            <properties size="2">
                <property
                    name="org.eclipse.equinox.p2.name"
                    value="Eclipse SDK" />
                <property
                    name='org.eclipse.equinox.p2.description'
                    value='The full version of Eclipse, with source and documentation: Platform, JDT and PDE.' />
                <property
                    name="org.eclipse.equinox.p2.type.category"
                    value="true" />
            </properties>
            <provides size="1">
                <provided
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.sdk.ide.categoryIU"
                    version="0.0.0" />
            </provides>
            <requires size="1">
                <required
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.sdk.ide"
                    range="0.0.0" />
            </requires>
            <touchpoint
                id="null"
                version="0.0.0" />
        </unit>
        <unit
            id="org.eclipse.platform.ide.categoryIU"
            version="0.0.0">
            <properties size="2">
                <property
                    name="org.eclipse.equinox.p2.name"
                    value="Eclipse Platform" />
                <property
                    name='org.eclipse.equinox.p2.description'
                    value='Minimum version of Eclipse: no source or API documentation, no PDE or JDT.' />
                <property
                    name="org.eclipse.equinox.p2.type.category"
                    value="true" />
            </properties>
            <provides size="1">
                <provided
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.platform.ide.categoryIU"
                    version="0.0.0" />
            </provides>
            <requires size="1">
                <required
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.platform.ide"
                    range="0.0.0" />
            </requires>
            <touchpoint
                id="null"
                version="0.0.0" />
        </unit>
        <unit
            id="org.eclipse.rcp.categoryIU"
            version="0.0.0">
            <properties size="2">
                <property
                    name="org.eclipse.equinox.p2.name"
                    value="Eclipse RCP Target Components" />
                <property
                    name='org.eclipse.equinox.p2.description'
                    value='Features to use as PDE runtime target, while developing RCP applications.' />
                <property
                    name="org.eclipse.equinox.p2.type.category"
                    value="true" />
            </properties>
            <provides size="1">
                <provided
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.rcp.categoryIU"
                    version="0.0.0" />
            </provides>
            <requires size="2">
                <required
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.rcp.feature.group"
                    range="0.0.0" />
                <required
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.rcp.source.feature.group"
                    range="0.0.0" />
            </requires>
            <touchpoint
                id="null"
                version="0.0.0" />
        </unit>
        <unit
            id="org.eclipse.releng.testsIU"
            version="0.0.0">
            <properties size="2">
                <property
                    name="org.eclipse.equinox.p2.name"
                    value="Eclipse Tests, Tools, Examples, and Extras" />
                <property
                    name='org.eclipse.equinox.p2.description'
                    value='Collection of Misc. Features, such as unit tests, SWT and e4 tools, examples, and compatibility features not shipped as part of main SDK, but which some people may desire in creating products based on previous versions of Eclipse.' />
                <property
                    name="org.eclipse.equinox.p2.type.category"
                    value="true" />
            </properties>
            <provides size="1">
                <provided
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.releng.testsIU"
                    version="0.0.0" />
            </provides>
            <requires size="6">
                <required
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.test.feature.group"
                    range="0.0.0" />
                <required
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.sdk.tests.feature.group"
                    range="0.0.0" />
                <required
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.sdk.examples.source.feature.group"
                    range="0.0.0" />
                <required
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.osgi.compatibility.plugins.feature.feature.group"
                    range="0.0.0" />
                <required
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.swt.tools.feature.feature.group"
                    range="0.0.0" />
                <required
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.e4.core.tools.feature.source.feature.group"
                    range="0.0.0" />
            </requires>
            <touchpoint
                id="null"
                version="0.0.0" />
        </unit>
        <unit
            id="org.eclipse.releng.java.languages.categoryIU"
            version="0.0.0">
            <properties size="3">
                <property
                    name="org.eclipse.equinox.p2.name"
                    value="Eclipse Java Development Tools" />
                <property
                    name='org.eclipse.equinox.p2.description'
                    value='Tools to allow development with Java.' />
                <property
                    name="org.eclipse.equinox.p2.type.category"
                    value="true" />
            </properties>
            <provides size="1">
                <provided
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.releng.java.languages.categoryIU"
                    version="0.0.0" />
            </provides>
            <requires size="2">
                <required
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.jdt.feature.group"
                    range="0.0.0" />
                <required
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.jdt.source.feature.group"
                    range="0.0.0" />
            </requires>
            <touchpoint
                id="null"
                version="0.0.0" />
        </unit>
        <unit
            id="org.eclipse.releng.pde.categoryIU"
            version="0.0.0">
            <properties size="3">
                <property
                    name="org.eclipse.equinox.p2.name"
                    value="Eclipse Plugin Development Tools" />
                <property
                    name='org.eclipse.equinox.p2.description'
                    value='Tools to develop bundles, plugins and features.' />
                <property
                    name="org.eclipse.equinox.p2.type.category"
                    value="true" />
            </properties>
            <provides size="1">
                <provided
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.releng.pde.categoryIU"
                    version="0.0.0" />a
            </provides>
            <requires size="2">
                <required
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.pde.feature.group"
                    range="0.0.0" />
                <required
                    namespace="org.eclipse.equinox.p2.iu"
                    name="org.eclipse.pde.source.feature.group"
                    range="0.0.0" />
            </requires>
            <touchpoint
                id="null"
                version="0.0.0" />
        </unit>
    </units>
</repository> 

@laeubi
Copy link
Contributor

laeubi commented Jun 14, 2024

@merks the "update-site" packaging can be sourced from various sources:

  • product(s)
  • category.xml
  • p2.inf

none of them is mandatory...

The mojo used there is tycho-p2-repository:assemble-repository has a parameter createArtifactRepository that can skip generation of artifact repository, you can also set the name, properties and so on. The advanced syntax supported by P2/Tycho in category.xml is explained here.

So I think its just a matter of creativity to combine all those to create such thing "from code", one even can define everything in a p2.inf file.

@merks
Copy link
Contributor

merks commented Jun 14, 2024

Yes, problems to be solved are generally a matter of sufficient creativity along available time. Where there's a will, there's a way...

Also, there is generally a list of all problems that one might spend time trying to resolve and the prioritization within that list of any particular problem. So who will prioritize this problem to the top of their queue? 👼

@laeubi
Copy link
Contributor

laeubi commented Jun 14, 2024

If one think its useful just create an issue and describe the input and the desired outcome, I'll try to take a look, I just wanted to note that actually the tooling should be there... I just don't know about where / when / why / ... about this.

@merks
Copy link
Contributor

merks commented Jun 14, 2024

A simple solution is to keep the content.xml is source from, build a jar from it, and call it done..

If I understand the problem correctly we'd want to maintain this entire thing in source form so that we can change it and find it in the future rather than knowing to look here:

https://download.eclipse.org/eclipse/updates/template_repo/

@HannesWell
Copy link
Member

A simple solution is to keep the content.xml is source from, build a jar from it, and call it done..

If I understand the problem correctly we'd want to maintain this entire thing in source form so that we can change it and find it in the future rather than knowing to look here:

https://download.eclipse.org/eclipse/updates/template_repo/

A bit hacky, but definitively better than the current situation. 😅

Btw. can't we just define the category as usual in the eclipse.platform.repository/category.xml? Or is it necessary to maintain the categories in a sub-repo?

@merks
Copy link
Contributor

merks commented Jun 18, 2024

I'm not sure if there is a specific reason to avoid having the categories redefined separately (and in duplicate) in each and every simple repository. I tested a site that is a composite where each child does define the categories and p2 does unify them even though each category IU has a different version:

image

So I don't know of a compelling reason or any reason not to define this in the category.xml in the normal way. Probably just for historical reasons.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

7 participants