Skip to content

Conversation

@mgol
Copy link
Member

@mgol mgol commented May 25, 2016

I've noticed jQuery 1.12/2.2 are not currently tested; I added proper config. Once this lands I can create a new Jenkins job for UI + Core 1.12.

I have a few questions:

  1. Are there any plans to test against jQuery Core 2.x? While they're supposed to be API-compatible with 1.x counterparts the internal code is different so they may be subtle bugs. It seems weird to me to test all 4 patch releases of 1.11.x but not to test even one 2.1.x.
  2. What's the purpose of the jquery-1.x entry in bower.json & in the external directory?

I've also added a few improvements to build-related stuff in the followup commits.

@scottgonzalez
Copy link
Member

Are there any plans to test against jQuery Core 2.x? While they're supposed to be API-compatible with 1.x counterparts the internal code is different so they may be subtle bugs.

We have the ability to test locally, but we don't test against 2.x in CI. This was done so long ago, I honestly don't remember the reasoning. I can't think of any problems with adding it, we'll just need to use different browser sets.

It seems weird to me to test all 4 patch releases of 1.11.x but not to test even one 2.1.x.

Re: all 4 patch releases; we'll probably never test against only the latest patch version because that's just not how developers actually work.

Re: 2.1.x; As I said above, I'm ok with adding this now.

@scottgonzalez
Copy link
Member

What's the purpose of the jquery-1.x entry in bower.json & in the external directory?

I'm not sure what you're asking. Are you asking why we have all the 1.x versions? It's because we support them. Are you asking why they're in external? It's because we don't use bower_components.

"commitplease": "2.3.0",
"grunt": "0.4.5",
"grunt-bowercopy": "1.2.4",
"grunt-cli": "0.1.13",
Copy link
Member

Choose a reason for hiding this comment

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

I'm not really a fan of this change. It breaks the standard usage of Grunt.

Copy link
Member Author

@mgol mgol May 25, 2016

Choose a reason for hiding this comment

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

How does it break it? You can still use the global grunt-cli if you wish so. OTH:

  1. In development all the dependencies are fixed so the possibility of a breakage is decreased.
  2. npm scripts can use the grunt binary without any global installation.
  3. People that don't like global packages may not use them here. Without including grunt-cli it's simply not possible as the grunt package doesn't contain any binary to run.

Most of the projects I contribute to include grunt-cli in devDependencies for these reasons. I often don't even have grunt-cli installed globally until I encounter a project that doesn't include this.

It seems to me that including it as a dependency doesn't break the usage for people that don't want to rely on it but not including it breaks the usage for others.

Even the grunt-cli README mentions this pattern so I don't understand your comment.

Copy link
Member

Choose a reason for hiding this comment

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

Ok, let's leave this change.

@mgol
Copy link
Member Author

mgol commented May 25, 2016

We have the ability to test locally, but we don't test against 2.x in CI. This was done so long ago, I honestly don't remember the reasoning.

I see. From what I remember the browser set used for testing was hardcoded in the UI repo but now different jobs can use different browser sets (I did it so that UI could be tested against jQuery 3.0.0 WIP) so this can be done. I can update this PR & create proper Jenkins jobs or 2.0, 2.1 & 2.2.

I'm not sure what you're asking. Are you asking why we have all the 1.x versions?

No, I'm asking about this entry in bower.json and this in the bowercopy config.

@scottgonzalez
Copy link
Member

I can update this PR & create proper Jenkins jobs or 2.0, 2.1 & 2.2.

Sounds good.

No, I'm asking about this entry in bower.json and this in the bowercopy config.

As I said, we don't use bower_components. bower.json only exists for the bowercopy task. The only files we care about live in external.

@scottgonzalez
Copy link
Member

Oh, sorry. Let me explain the 1.x entry. We need a single reference to jQuery for use in demos. To do that, we use 1.x and copy it to a file that doesn't have a version. This allows us to not have to update a ton of references when we change the latest version we're testing against.

@mgol
Copy link
Member Author

mgol commented May 25, 2016

@scottgonzalez Thanks for the explanation!

bower.json Outdated
"jquery-1.12.2": "jquery#1.12.2",
"jquery-1.12.3": "jquery#1.12.3",
"jquery-1.12.4": "jquery#1.12.4",
"jquery-1.x": "jquery#1.11.3",
Copy link
Member

Choose a reason for hiding this comment

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

Thanks for pointing this out in your comment (and sorry for taking so long to understand what you were asking). This should be updated to point to 1.12.4; it always tracks the latest 1.x version, and then it gets used in demos and some other places.

Copy link
Member Author

Choose a reason for hiding this comment

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

Changed. I also changed it at

url = "../../../external/jquery-" + ( version || "1.11.3" ) + "/jquery";

mgol added 3 commits May 25, 2016 16:13
This makes it possible to use Grunt without installing grunt-cli globally
which makes the whole process more resilient.
@mgol
Copy link
Member Author

mgol commented May 25, 2016

PR updated.

@scottgonzalez
Copy link
Member

This looks good. Is this ready to be merged or do you still need to make changes in Jenkins first?

@mgol
Copy link
Member Author

mgol commented May 25, 2016

do you still need to make changes in Jenkins first

I've just created the Jenkins jobs for 1.12, 2.0, 2.1 & 2.2. I also added another commit to this PR that makes only Core 1.x jobs to be tested on IE 8, PTAL.

If this looks fine, feel free to merge. I'll then check if I configured the Jenkins jobs correctly.

scottgonzalez pushed a commit that referenced this pull request May 25, 2016
scottgonzalez pushed a commit that referenced this pull request May 25, 2016
This makes it possible to use Grunt without installing grunt-cli globally
which makes the whole process more resilient.

Ref gh-1706
@scottgonzalez
Copy link
Member

Merged.

@mgol mgol deleted the core-updates branch May 25, 2016 20:44
@mgol
Copy link
Member Author

mgol commented May 25, 2016

I've triggered the jobs manually and they seem to be running correctly:

A couple of tests are consistently failing with 2.0.0-2.0.3 in all browsers.

mgol added a commit to mgol/jquery-ui that referenced this pull request May 26, 2016
jQuery 2.0.3 fixed very few things from 2.0.2, the list is here:
​http://blog.jquery.com/2013/07/03/jquery-1-10-2-and-2-0-3-released/

One of the fixes was ​http://bugs.jquery.com/ticket/13980, though which was
about cross-domain iframe issues. The problem is TestSwarm loads a cross-domain
iframe: the main page is swarm.jquery.org, the frame is on
builds.jenkins.jquery.com so it might be causing issues. You can see jQuery UI
tests are timing out in all IE versions in jQuery 2.0.2:
​http://swarm.jquery.org/job/2918

The problem is that it doesn't just fail, it starves the available IE pool,
making it sometimes harder for other projects to get their tests run on IE.

That's why tests with jQuery 2.0.2 on TestSwarm need to be removed as it's been
done with 1.10.1.

Refs #12745
Refs c2224bf
Refs jquerygh-1706
@mgol
Copy link
Member Author

mgol commented May 26, 2016

OK, Core 2.0.2 is completely unusable on TestSwarm, it drains the available IE pool & needs to be removed as 1.10.1 has for the same reason. See PR #1707 for more details.

scottgonzalez pushed a commit that referenced this pull request May 26, 2016
jQuery 2.0.3 fixed very few things from 2.0.2, the list is here:
​http://blog.jquery.com/2013/07/03/jquery-1-10-2-and-2-0-3-released/

One of the fixes was ​http://bugs.jquery.com/ticket/13980, though which was
about cross-domain iframe issues. The problem is TestSwarm loads a cross-domain
iframe: the main page is swarm.jquery.org, the frame is on
builds.jenkins.jquery.com so it might be causing issues. You can see jQuery UI
tests are timing out in all IE versions in jQuery 2.0.2:
​http://swarm.jquery.org/job/2918

The problem is that it doesn't just fail, it starves the available IE pool,
making it sometimes harder for other projects to get their tests run on IE.

That's why tests with jQuery 2.0.2 on TestSwarm need to be removed as it's been
done with 1.10.1.

Refs #12745
Refs c2224bf
Refs gh-1706
Closes gh-1707
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants