Ticket #10745 (closed PLIP: fixed)

Opened 6 years ago

Last modified 5 years ago

Packaging updates for 3rd party Javascript

Reported by: MatthewWilkes Owned by:
Priority: minor Milestone: 4.1
Component: JavaScript Version:
Keywords: Cc: smcmahon, plip-advisories@…

Description (last modified by MatthewWilkes) (diff)

Proposer: Matthew Wilkes
Seconder: Steve McMahon

Motivation

There are some very popular Javascript libraries in use in Plone, such as jQuery, jQuery Tools and TinyMCE. Some of these have rich Plone integration packages in the plone.app.* namespace which necessitate tight control over who can change them.

The practical upshot is that integrators who want to use a different version of jQuery have to hack around with the JS Registry. By depending on the collective.js.* releases we can use the power of setuptools for version control.

Assumptions

This assumes we aren't shipping vendor modified branches of various JS libraries.

Proposal & Implementation

Move all third party Javascript libraries in core components to new packages in the collective repository. These will follow a standard format that provides access to the javascript as a browser resource and an entry in the JS registry.

Deliverables

New packages: collective.js.jquery, collective.js.jquerytools, collective.js.tinymce (maybe)

Risks

Since we'll have key components in the collective repository, it's going to be very important to identify the release managers for the components and make sure that PyPI package ownership is controlled.

Participants

Steve McMahon (I'll handle the jQuery Tools parts). Matthew Wilkes

Progress

-

Change History

comment:1 Changed 6 years ago by hannosch

  • Component changed from Unknown to Javascript

comment:2 Changed 6 years ago by smcmahon

  • Description modified (diff)

comment:3 Changed 6 years ago by smcmahon

  • Description modified (diff)

comment:4 Changed 6 years ago by smcmahon

  • Cc smcmahon added

comment:5 Changed 6 years ago by MatthewWilkes

  • Description modified (diff)

comment:6 Changed 6 years ago by robgietema

As discussed in the FWT meeting:

  • we thought it is a good idea in general but only for packages which are "frameworks" (so jquery and jquerytools and not tinymce)
  • we didn't agree about this being in the collective
  • we didn't like the double name space

so the proposal is:

  • create plone.jquery with just the jquery.js file and the registration of the resource
  • create plone.jquerytools with just the jquerytools.js file (factored out of p.a.jquerytools)
  • let the plone.app.jquerytools contain just the plone integration

This follows the convention we have already about the plone.* and plone.app.* namespaces.

comment:7 Changed 6 years ago by davisagli

Another argument against doing it for tinymce is that at this point Products.TinyMCE has applied some modifications from the vendor source.

Please consider making sure the new packages work or at least degrade properly in Plone 3; otherwise 3rd-party add-ons keeping compatiblity with Plone 3 won't be able to depend on them.

comment:8 Changed 6 years ago by esteele

Your PLIP has been accepted for consideration for Plone 4.1.

Framework Team voting on this PLIP was: Alec +.5 Craig +.5 Elizabeth +0 Laurence +1 Martijn +1 Matthew -- Rob +1 Ross +1

The initial implementation deadline for your PLIP is October 1st, 2010. The Framework Team would certainly appreciate you finishing beforehand so that they may begin evaluating it as soon as possible. Announce its readiness here once your implementation is ready for review.

comment:9 Changed 6 years ago by cah190

  • Cc plip-advisories@… added

comment:10 Changed 5 years ago by esteele

  • Status changed from new to closed
  • Resolution set to fixed

Completed.

Note: See TracTickets for help on using tickets.