HomePhabricator

Use direct inclusion, not submodules, to bring Javelin into Phabricator

Description

Use direct inclusion, not submodules, to bring Javelin into Phabricator

Summary:
Submoduling is slightly convenient for developers but hellishly difficult for many users. Since we make about a dozen updates to Javelin per year, just include the source directly.

Even if we run git submodule status more often, this creates additional problems for users with PATH misconfigured.

Fixes T2062 by nuking it from orbit.

Test Plan: Loaded site, browsed around. Grepped for references to submodules.

Reviewers: btrahan, vrana

CC: aran

Maniphest Tasks: T2062

Differential Revision: https://secure.phabricator.com/D4581

Details

Auditors
vrana
Provenance
epriestleyAuthored on
Differential Revision
D4581: Use direct inclusion, not submodules, to bring Javelin into Phabricator
Parents
rP22c64c67ffca: Fix performance problem for large task queues
Branches
Unknown
Tags
Unknown
Tasks
Restricted Maniphest Task

Event Timeline

vrana raised a concern with this commit.Apr 12 2013, 5:51 PM

It seems that this has broken JS minification. We can solve it by copying jsxmin to /externals/ or we can start depending on Javelin the same way as we depend on libphutil.

My plan is to bring javelinsymbols and jsxmin into the project optionally by having users build and symlink them into support/bin/ (see T2378).

Possibly we should have a fallback minifier too, which just strips comments and whitespace with dumb regexps. This is probably 90% of the benefit for 2-3 lines of code.

(I don't want to add a javelin/ dependency or require users build any binaries to run Phabricator.)

I really wouldn't try to minify JS with a dumb regexp. But maybe we can use my JS minifier implemented in PHP JsShrink?