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-34670] Add support for a new full screen layout #2445

Merged
merged 10 commits into from
Apr 2, 2017

Conversation

recena
Copy link
Contributor

@recena recena commented Jul 10, 2016

JENKINS-34670

  • Modify the Setup Wizard for using the full screen layout as a clear use-case.

The About page using the three different layout types (1024px x 768px).

full-screen: no header, no footer, no spaces

captura el 2016-07-10 a las 21 12 26

one-column: full width

captura el 2016-07-10 a las 21 13 03

two-column: side-panel + main-panel

captura el 2016-07-10 a las 21 14 08

@reviewbybees

@ghost
Copy link

ghost commented Jul 10, 2016

This pull request originates from a CloudBees employee. At CloudBees, we require that all pull requests be reviewed by other CloudBees employees before we seek to have the change accepted. If you want to learn more about our process please see this explanation.

@oleg-nenashev
Copy link
Member

Looks good to me. 👍 and 🐝
By the way, it may a bit affect users, who bundle custom Javascripts to headers and footers. Maybe makes sense to keep empty header and footer tags then

@recena
Copy link
Contributor Author

recena commented Jul 15, 2016

@oleg-nenashev This kind of things should not do. This layout is thought specially for:

  • Dashboard
  • To replace the page when Jenkins is restarting, and avoid the side-effect of resource not loaded
  • Maybe the InstallWizard (@kzantow)
  • etc...

@oleg-nenashev oleg-nenashev added needs-more-reviews Complex change, which would benefit from more eyes ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback and removed needs-more-reviews Complex change, which would benefit from more eyes labels Jul 15, 2016
@oleg-nenashev
Copy link
Member

@reviewbybees done BTW
@jenkinsci/code-reviewers I would appreciate additional feedback

@daniel-beck
Copy link
Member

daniel-beck commented Jul 17, 2016

I'm not sure this is a great change:

  • Isn't that what /lib/layout/html does? Why not just use that?
  • There's no rationale for this change. Why no headers/footers? I get that we may not want a side panel, but nothing?
  • How is one supposed to navigate away from such pages? The example About page shows it's a dead end with no way to return, seems like a messy, unusable approach.

My main concern is that piling on options in lib/layout for exceptional pages like those without headers/footers will result in maintenance problems later. Having a minimal(ish), separate /lib/layout/html seems preferable.

@oleg-nenashev oleg-nenashev added needs-more-reviews Complex change, which would benefit from more eyes and removed ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback labels Jul 17, 2016
@oleg-nenashev
Copy link
Member

Back to needs-review after the comment from @daniel-beck

@kzantow
Copy link
Contributor

kzantow commented Jul 17, 2016

@daniel-beck /lib/layout/html should (and will) be removed in favor of this approach. the about page would use the one-column view, the no header/footer is for illustrative purposes only, which would replace the /lib/layout/html

🐝 from me on this change

@daniel-beck
Copy link
Member

@kzantow

should … be removed in favor of this approach.

There's still no rationale for this change besides asserting it's the right thing to do. As I wrote,

piling on options in lib/layout for exceptional pages like those without headers/footers [may] result in maintenance problems later

@recena
Copy link
Contributor Author

recena commented Jul 22, 2016

@reviewbybees done

@ghost
Copy link

ghost commented Jul 22, 2016

This pull request has completed our internal processes and we now respectfully request the maintainers of this repository to consider our proposal contained within this pull request for merging.

@recena
Copy link
Contributor Author

recena commented Jul 22, 2016

@daniel-beck It seems there are 3 persons, included the person who added the html.jelly, agree with this is the right way to implement several layouts (included the full screen).

@recena
Copy link
Contributor Author

recena commented Jul 22, 2016

If I provided a way to include support for several layout types, was precisely to avoid hacks that we can see in Jenkins core and plugins.

@daniel-beck
Copy link
Member

@recena

there are 3 persons [who agree] this is the right way to implement several layouts

And yet none of them managed to explain why it's a better approach, or even just addressed my specific concern above. There's only repeated assertions (another one from you just now) that this is the correct approach.

@kzantow
Copy link
Contributor

kzantow commented Jul 22, 2016

@daniel-beck it's a better approach because it consolidates the style/script includes and resource references to a single file, instead of having to update 2 any time we might change them. And plugins could use this instead of defining local style overrides to hide the stuff, there's a common method of doing so.

@daniel-beck
Copy link
Member

@kzantow

Thank you! I feel we're getting closer to a result.

it consolidates the style/script includes and resource references to a single file

This PR does not remove html.jelly, so there are no such benefits.

plugins could use this instead of defining local style overrides to hide the stuff

They can use html.jelly -- they may even already do so, because nowhere does it state that it's not fit for use from plugins.

So, to recap:

  • All the benefits of this change only apply if html.jelly gets removed.
  • html.jelly doesn't get removed.
  • In fact, it may be not possible to remove it, as it's effectively part of Jenkins' public plugin API now.

@kzantow
Copy link
Contributor

kzantow commented Jul 22, 2016

@daniel-beck so, we could modify html.jelly to include the layout.jelly with the appropriate parameter to make it equivalent, probably remove the html.jelly usage in the setup wizard, and then figure out a way to deprecate it later.

@recena
Copy link
Contributor Author

recena commented Jul 22, 2016

@daniel-beck

This is a step to remove html.helly and provide a right way to provide full-screen layout. This step belongs to a more general solution that started few months ago.

@recena
Copy link
Contributor Author

recena commented Jul 22, 2016

@kzantow Thanks for your assistance. My internet connection is very limited on these days.

@daniel-beck
Copy link
Member

@kzantow Good idea. I think this should be fine if it included that change so there's actually a benefit to merging this.

@oleg-nenashev oleg-nenashev added ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback and removed needs-more-reviews Complex change, which would benefit from more eyes labels Aug 8, 2016
@oleg-nenashev
Copy link
Member

So it's ready to merge from what I see

@recena
Copy link
Contributor Author

recena commented Aug 8, 2016

@oleg-nenashev From my side it is ready to merge but I understand @daniel-beck wants to see a real usage of that. My recommendation is to prepare a new PR.

@daniel-beck
Copy link
Member

@oleg-nenashev @recena I'd like to see actual applications of this code included in this same PR. Too much unused infrastructure in Jenkins as-is.

Copy link
Member

@oleg-nenashev oleg-nenashev left a comment

Choose a reason for hiding this comment

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

I disagree with removal of lib/layout/html.jelly in such way. Even if it does not make sense for other usages (proof?), it was a part of the Jenkins API for Jelly, which is documented in Jenkins TagLib documentation. This TagLib site is not being hosted on jenkins.io now (hope it changes at some point), but IMHO it is not safe to just remove it.

I would propose to keepthis Jelly tag somehow. It is fine to mark it as deprecated in the documentation if you do not want to inherit from it like @daniel-beck proposed.

@recena
Copy link
Contributor Author

recena commented Mar 15, 2017

THIS IS INCREDIBLE!

@recena
Copy link
Contributor Author

recena commented Mar 15, 2017

@oleg-nenashev html.jelly was introduced by @kzantow in order to provide a full screen layout. This tag is being used only in the setup wizard.

@recena
Copy link
Contributor Author

recena commented Mar 15, 2017

@oleg-nenashev Curiously, the author of this Jelly tag agrees with the changes proposed here.

@recena
Copy link
Contributor Author

recena commented Mar 15, 2017

@oleg-nenashev

it was a part of the Jenkins API for Jelly,

The perfect argument for keeping legacy code for a long time

which is documented in Jenkins TagLib documentation.

And?

I would propose to keepthis Jelly tag somehow

Why? Where is being used?

if you do not want to inherit from it

Confused, not needed. layout.jelly was and is, the original propose for implementing different UI layouts.

@recena
Copy link
Contributor Author

recena commented Mar 15, 2017

This PR was filed since Jul 10, 2016

@recena
Copy link
Contributor Author

recena commented Mar 15, 2017

I'm remembering this one #1717, with more than 122 comments.

@oleg-nenashev
Copy link
Member

I and @recena discussed this issue internally. I still disagree with such ranting and I still feel strong about my feedback.

I propose the following ways to proceed...

  1. Get more votes for @jenkinsci/code-reviewers . I do not veto this PR (nobody can)
  2. Decouple the html.jelly deletion to a separate PR an continue the discussion there

@recena
Copy link
Contributor Author

recena commented Mar 16, 2017

If ranting means sharing / expressing my frustration, yes. Each change related with the UI involves a BIG challenge. We should think / reflect why the UI and UX have been one of the most negative part of this project.

@recena
Copy link
Contributor Author

recena commented Mar 31, 2017

@oleg-nenashev Given the two options, I've choose the second one.

@recena
Copy link
Contributor Author

recena commented Apr 1, 2017

@oleg-nenashev

I would propose to keep this Jelly tag somehow. It is fine to mark it as deprecated in the documentation if you do not want to inherit from it like @daniel-beck proposed.

This was what I did.

Copy link
Member

@oleg-nenashev oleg-nenashev left a comment

Choose a reason for hiding this comment

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

👍 for the code itself. Ready to merge assuming it was manually tested

@oleg-nenashev
Copy link
Member

@daniel-beck wdyt?

@recena
Copy link
Contributor Author

recena commented Apr 1, 2017

@oleg-nenashev I'm going to prepare the PR for removing html.jelly, as you suggested.

@recena
Copy link
Contributor Author

recena commented Apr 1, 2017

@oleg-nenashev this was tested many times.

Today, I did smoke tests against: 2.32.3, 2.41.1 and master.

@recena
Copy link
Contributor Author

recena commented Apr 1, 2017

By the way, I did a rebase with master, this was my last commit.

@oleg-nenashev
Copy link
Member

@recena OK, ty. Will sync-up on the release of this fix with Daniel

@oleg-nenashev oleg-nenashev added ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback and removed needs-more-reviews Complex change, which would benefit from more eyes labels Apr 2, 2017
@oleg-nenashev
Copy link
Member

According to the feedback from @daniel-beck , he is neutral regarding this change.
Merging according to the feedback from others

@oleg-nenashev oleg-nenashev merged commit cc85dc1 into jenkinsci:master Apr 2, 2017
@oleg-nenashev
Copy link
Member

My bad, merged it without squash. But it is not a backporting candidate anyway

@recena
Copy link
Contributor Author

recena commented Apr 2, 2017

@oleg-nenashev In general, I prefer to merge this kind of changes by using squash mode. But as you mentioned, this is not a candidate for backporting.

@recena
Copy link
Contributor Author

recena commented Apr 2, 2017

@kzantow @oleg-nenashev @daniel-beck I appreciate a lot your time and reviews.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants