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

[JENKINS-73539] Disable YUI by default #10045

Merged
merged 3 commits into from
Dec 12, 2024
Merged

Conversation

timja
Copy link
Member

@timja timja commented Dec 10, 2024

See JENKINS-73539.

This is the culmination of a lot of work over the years to slowly replace existing components that were built with YUI to alternatives.
A few examples:

A number of plugins and core changes have been prepared to make this possible.
See the tracking spreadsheet: https://docs.google.com/spreadsheets/d/1UjvtFmNmEdjMN5DUoFxJfBryA8q-E5_HwOzVKbVG9b0/edit?gid=969462704#gid=969462704

We aren't removing YUI at this time as @MarkEWaite requested that we wait till after the next LTS cutoff so-as vendors can change the default back if they still require YUI in their commercial products.

Testing done

Checked elements in the browser tools, by default no yui is there.

Disabled the flag in user settings and yui appears

Ran System.setProperty("jenkins.model.experimentalflags.RemoveYuiUserExperimentalFlag.defaultValue", "false") in the script console and yui appears without having to set a flag.

Clicked around and no issues found.
ATH is successful: jenkinsci/acceptance-test-harness#1861

PCT is successful: jenkinsci/bom#4084.

Proposed changelog entries

  • Disable the Yahoo! User Interface library by default

Proposed upgrade guidelines

N/A

Submitter checklist

Preview Give feedback

Desired reviewers

@mention

Before the changes are marked as ready-for-merge:

Maintainer checklist

Preview Give feedback

@timja timja added web-ui The PR includes WebUI changes which may need special expertise major-rfe For changelog: Major enhancement. Will be highlighted on the top rfe For changelog: Minor enhancement. use `major-rfe` for changes to be highlighted and removed major-rfe For changelog: Major enhancement. Will be highlighted on the top labels Dec 10, 2024
@timja timja changed the title Disable YUI by default [JENKINS-73539] Disable YUI by default Dec 10, 2024
@mawinter69
Copy link
Contributor

Not sure if this is the right approach. The flag is a user specific thing, so when a plugin is installed that still requires YUI, it means that each and every user of that instance needs to enable it in their personal settings.
I would remove that experimental flag and instead introduce a system property that allows to define if YUI should be enabled or not. That way the admin of an instance can define at startup that YUI is still needed.

@timja timja mentioned this pull request Dec 10, 2024
6 tasks
@timja timja requested a review from mawinter69 December 10, 2024 21:49
@timja timja added ath-successful This PR has successfully passed the full acceptance-test-harness suite pct-successful This PR has successfully passed the full plugin-compatibility-test suite labels Dec 11, 2024
@timja timja marked this pull request as ready for review December 11, 2024 09:31
@timja timja requested review from a team and MarkEWaite December 11, 2024 09:31
Copy link
Contributor

@janfaracik janfaracik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM <3 Been a long time coming for this one.

@timja
Copy link
Member Author

timja commented Dec 11, 2024

/label ready-for-merge


This PR is now ready for merge, after ~24 hours, we will merge it if there's no negative feedback.

Thanks!

@comment-ops-bot comment-ops-bot bot added the ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback label Dec 11, 2024
@mawinter69
Copy link
Contributor

good enough
Does it need the upgrade-guide-needed label?

@timja
Copy link
Member Author

timja commented Dec 11, 2024

good enough Does it need the upgrade-guide-needed label?

lets add just in case

@timja timja added the upgrade-guide-needed This changes might be breaking in rare circumstances, an entry in the LTS upgrade guide is needed label Dec 11, 2024
@timja timja merged commit 8c9caff into jenkinsci:master Dec 12, 2024
16 checks passed
@timja timja deleted the disable-yui branch December 12, 2024 21:39
@timja timja mentioned this pull request Jan 8, 2025
krisstern added a commit that referenced this pull request Jan 12, 2025
<!-- Comment:
A great PR typically begins with the line below.
Replace XXXXX with the numeric part of the issue ID you created in Jira.
Note that if you want your changes backported into LTS, you need to
create a Jira issue. See
https://www.jenkins.io/download/lts/#backporting-process for more
information.
-->

See JENKINS-75100

Now that the [disable by default of
YUI](#10045) has been released
for ~1 month with no complaints its time to start thinking about
removing YUI itself.

We're passed the baseline cut-off for the next LTS which was what
@MarkEWaite requested that I wait for before removing YUI fully

What I've left:
* I've removed CSS where I think its safe but I haven't removed all
mentions of `yui`.
* `l:yui` I've changed it to do nothing but its used in a few
unmaintained plugins, I could remove this, thoughts?
* There's a few TODOs that say they could be cleaned up after yui was
removed for the component, but hasn't been done yet

ATH passed:
jenkinsci/acceptance-test-harness#1884
Bom: jenkinsci/bom#4176

<!-- Comment:
If the issue is not fully described in Jira, add more information here
(justification, pull request links, etc.).

 * We do not require Jira issues for minor improvements.
* Bug fixes should have a Jira issue to facilitate the backporting
process.
 * Major new features should have a Jira issue.
-->

### Testing done

Clicked around a number of pages and didn't see anything wrong.

<!-- Comment:
Provide a clear description of how this change was tested.
At minimum this should include proof that a computer has executed the
changed lines.
Ideally this should include an automated test or an explanation as to
why this change has no tests.
Note that automated test coverage is less than complete, so a successful
PR build does not necessarily imply that a computer has executed the
changed lines.
If automated test coverage does not exist for the lines you are
changing, you must describe the scenario(s) in which you manually tested
the change.
For frontend changes, include screenshots of the relevant page(s) before
and after the change.
For refactoring and code cleanup changes, exercise the code before and
after the change and verify the behavior remains the same.
-->

### Proposed changelog entries

- Remove the Yahoo! User Interface library

<!-- Comment:
The changelog entry should be in the imperative mood; e.g., write "do
this"/"return that" rather than "does this"/"returns that".
For examples, see: https://www.jenkins.io/changelog/

Do not include the Jira issue in the changelog entry.
Include the Jira issue in the description of the pull request so that
the changelog generator can find it and include it in the generated
changelog.

You may add multiple changelog entries if applicable by adding a new
entry to the list, e.g.
- First changelog entry
- Second changelog entry
-->

### Proposed upgrade guidelines

N/A

<!-- Comment:
Leave the proposed upgrade guidelines in the pull request with the "N/A"
value if no upgrade guidelines are needed.
The changelog generator relies on the presence of the upgrade guidelines
section as part of its data extraction process.
-->

```[tasklist]
### Submitter checklist
- [ ] The Jira issue, if it exists, is well-described.
- [ ] The changelog entries and upgrade guidelines are appropriate for the audience affected by the change (users or developers, depending on the change) and are in the imperative mood (see [examples](https://github.com/jenkins-infra/jenkins.io/blob/master/content/_data/changelogs/weekly.yml)). Fill in the **Proposed upgrade guidelines** section only if there are breaking changes or changes that may require extra steps from users during upgrade.
- [ ] There is automated testing or an explanation as to why this change has no tests.
- [ ] New public classes, fields, and methods are annotated with `@Restricted` or have `@since TODO` Javadocs, as appropriate.
- [ ] New deprecations are annotated with `@Deprecated(since = "TODO")` or `@Deprecated(forRemoval = true, since = "TODO")`, if applicable.
- [ ] New or substantially changed JavaScript is not defined inline and does not call `eval` to ease future introduction of Content Security Policy (CSP) directives (see [documentation](https://www.jenkins.io/doc/developer/security/csp/)).
- [ ] For dependency updates, there are links to external changelogs and, if possible, full differentials.
- [ ] For new APIs and extension points, there is a link to at least one consumer.
```

### Desired reviewers

@mention

<!-- Comment:
If you need an accelerated review process by the community (e.g., for
critical bugs), mention @jenkinsci/core-pr-reviewers.
-->

Before the changes are marked as `ready-for-merge`:

```[tasklist]
### Maintainer checklist
- [ ] There are at least two (2) approvals for the pull request and no outstanding requests for change.
- [ ] Conversations in the pull request are over, or it is explicit that a reviewer is not blocking the change.
- [ ] Changelog entries in the pull request title and/or **Proposed changelog entries** are accurate, human-readable, and in the imperative mood.
- [ ] Proper changelog labels are set so that the changelog can be generated automatically.
- [ ] If the change needs additional upgrade steps from users, the `upgrade-guide-needed` label is set and there is a **Proposed upgrade guidelines** section in the pull request title (see [example](#4387)).
- [ ] If it would make sense to backport the change to LTS, a Jira issue must exist, be a _Bug_ or _Improvement_, and be labeled as `lts-candidate` to be considered (see [query](https://issues.jenkins.io/issues/?filter=12146)).
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ath-successful This PR has successfully passed the full acceptance-test-harness suite pct-successful This PR has successfully passed the full plugin-compatibility-test suite ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback rfe For changelog: Minor enhancement. use `major-rfe` for changes to be highlighted upgrade-guide-needed This changes might be breaking in rare circumstances, an entry in the LTS upgrade guide is needed web-ui The PR includes WebUI changes which may need special expertise
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants