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

Audit use of third-party libraries throughout the project #431

Closed
rnagle opened this issue Mar 17, 2015 · 7 comments
Closed

Audit use of third-party libraries throughout the project #431

rnagle opened this issue Mar 17, 2015 · 7 comments
Assignees
Labels
priority: high Either blocks work on a priority-normal task or a solution here informs other work. priority: normal Must be completed before release of this version of plugin. type: improvement type: question
Milestone

Comments

@rnagle
Copy link

rnagle commented Mar 17, 2015

  • Are there any libraries in lib/ that we should update?
  • Are there any libraries in lib/ that are unused and should be removed?
  • Are we using javascript libraries that we should update?
  • Are there any javascript libraries that are unused and should be removed?
  • Look into updates and/or additions to our Fontello package.
@rnagle rnagle added type: improvement type: question priority: normal Must be completed before release of this version of plugin. labels Mar 17, 2015
@rnagle rnagle added this to the 0.5 milestone Mar 17, 2015
@rnagle rnagle added the priority: high Either blocks work on a priority-normal task or a solution here informs other work. label Apr 3, 2015
@meredithinn
Copy link

First pass -- I found the following:

Clean contact

Navis media credit

Related issues

Navis Slideshow gallery image size

Clean contact settings

Maybe @tothebeat would have a look with me to see if I missed anything.

@nrrb
Copy link

nrrb commented Apr 3, 2015

Contents of /lib

Definitely Used

Questionable how much these are used

@rnagle
Copy link
Author

rnagle commented Apr 28, 2015

Building on @tothebeat's and @meredithinn's comments:

No updates for:

  • Clean Contact
  • Navis Media Credit
    • Argo Project plugin
  • Navis Slideshows:
    • Argo Project plugin
    • No recent updates
    • Highly modified by us

Updates are available for:

  • lessphp:
    • Latest version is 0.4 (we're behind by one point release)
    • This has been lightly modified by us to be able to submit Largo, which haven't done yet.
  • TGM Plugin Activation:
    • Latest version is 2.4.2 (we're behind by a few releases)
    • Tthis has been modified by us
  • Options Framework
    • Latest version is 1.8.4 (we're using 1.4)
    • Some modifications by us

To absolve ourselves of this chore, I think we should completely absorb some of these libraries into Largo, linking/crediting the original project where appropriate (or required). This should be fine for the libs that have no updates upstream.

The libraries that are under active development AND which we have modified for use in Largo are another story.

In the case of the lessphp lib, we'll generally have to modify any release to use WP_Filesystem instead of core PHP functions for accessing and modifying the filesystem, since this is a requirement if we want to submit the theme to WordPress. Since we've already modified the version we're currently using, let's stick with that for now. It's not too far out of date, anyway. Maybe we should consider creating a fork of the project, modifying it to meet all of WordPress' requirements for submitting themes and plugins to the directory.

TGM Plugin Activation seems to be working fine for our purposes. I'm not sure we have needs that the newer version addresses. None of the updates appear to address security concerns.

It would be nice to update the Options Framework library, but it saw a major refactor in version 1.7. I tried updating locally and while the options page appeared to render, it's unclear if saving/updating works. Also, updating results in a broken layout on the options page (i.e. missing or moved css files). Bottom line is, this will require some work.

Does anyone have strong feelings about any of this? I'd like to create new tickets to address the issues with individual components as outlined above.

@rnagle
Copy link
Author

rnagle commented Apr 28, 2015

As for javascript libraries:

  • select2:
    • We're using select2 for Largo's custom post types functionality, where we allow the user to select an icon to associate with a custom post type.
    • We're using version 3.4.8 and the most recent version is 3.5.2. There are no release notes readily available explaining the benefits of upgrading. The library seems to work fine for our purposes so I think we're OK to leave it as-is.
  • modernizr
    • We're using a customized version 2.6.3 where the most recent release is 2.8.3.
    • I don't think there's any pressing need for us to upgrade this library.
    • It would be nice to have documented what a custom build of modernizr for Largo is comprised of. This would make updating/upgrading easier in the future.
  • jquery.idTabs.js
    • We're using version 3.0 which is recent as of 2010.
    • Considering what we're using it for, we could write our own javascript, drop a dependency and save some bandwidth by cutting out the features that we don't use.
    • Used with the Largo Explore Related widget
    • This should take an afternoon (or less) of refactoring

Think that covers it. Same as with PHP libs -- any strong feelings here?

@benlk
Copy link
Collaborator

benlk commented Apr 29, 2015

Just a small note on jquery.idTabs.js - if we don't drop it, we should consider renaming it to jquery-idTabs.js so that the uglify task will name the minified version as jquery-idTabs.min.js instead of jquery.min.js. Uglify chops filenames at the first period, not at the last.

@aschweigert
Copy link

For the PHP stuff, I think forking lessphp to make it wordpress compatible makes sense, updating the plugin framework doesn't seem particularly urgent to me (although there's a permissions issue I need to open a ticket for that we need to try to hunt down) and for the options framework....rather than update that I'm wondering if we should just really get serious about using the customizer since WP is really trying to push people in that direction. Seems like that would naturally be part of 0.6 anyway.

For the JS stuff, all of the above seems fine to me. I would prefer to get up to the current version for all of these, with the possible exception of the tabs thing which I think we could definitely refactor and remove the dependency.

@rnagle
Copy link
Author

rnagle commented May 1, 2015

Created several new issues based on the audit. Thanks for the help, everyone!

@rnagle rnagle closed this as completed May 1, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority: high Either blocks work on a priority-normal task or a solution here informs other work. priority: normal Must be completed before release of this version of plugin. type: improvement type: question
Projects
None yet
Development

No branches or pull requests

5 participants