Page MenuHomePhabricator

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

Authored by epriestley on Jan 22 2013, 6:56 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Nov 18, 2:30 AM
Unknown Object (File)
Sat, Nov 9, 10:19 PM
Unknown Object (File)
Mon, Nov 4, 10:10 PM
Unknown Object (File)
Fri, Nov 1, 8:48 AM
Unknown Object (File)
Thu, Oct 24, 9:21 PM
Unknown Object (File)
Oct 15 2024, 4:58 PM
Unknown Object (File)
Oct 5 2024, 2:35 PM
Unknown Object (File)
Oct 5 2024, 2:35 PM
Subscribers

Details

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.

Diff Detail

Branch
nosub
Lint
Lint Errors
SeverityLocationCodeMessage
Errorexternals/javelin/src/ext/view/HTMLView.js:0JAVELIN3Unnecessary Javelin Dependency
Errorexternals/javelin/src/lib/Resource.js:0JAVELIN3Unnecessary Javelin Dependency
Errorexternals/javelin/src/lib/Resource.js:0JAVELIN3Unnecessary Javelin Dependency
Errorexternals/javelin/src/lib/control/typeahead/source/TypeaheadOnDemandSource.js:0JAVELIN3Unnecessary Javelin Dependency
Errorexternals/javelin/src/lib/control/typeahead/source/TypeaheadPreloadedSource.js:0JAVELIN3Unnecessary Javelin Dependency
Unit
Tests Passed

Event Timeline

Fixes T2062 by nuking it from orbit.

haha!

Some of the lint warnings seem legit to me re: missing or unnecessary dependencies.

I wish Git submodules work more automatically.

Why is this diff requiring javelinsymbols in path?

Previously, we required javelinsymbols be built in externals/javelin/, but I'm including only javelin/src/ explicitly here, not all of the support/documentation/website/examples/prebuilt packages, so the source to build javelinsymbols is no longer in the project.

We could include all the code required to build javelinsymbols, but it seems like overkill since only developers who are touching JS have any need for it.

I don't like putting everything in the path (especially the tools I don't run manually) so I would prefer specifying the path manually but I don't care much about it.

That makes sense. We should document how to build it anyway; I'll file something to make this better and more configurable.

I backed this out and reverted "master" on the origin to before the commit. When I landed this as is, "git pull" began to fail in working copies with the submodule checked out:

$ git pull --rebase
First, rewinding head to replay your work on top of it...
error: The following untracked working tree files would be overwritten by checkout:
	externals/javelin/.gitignore
	externals/javelin/LICENSE
	externals/javelin/README
	externals/javelin/src/core/Event.js
  ...

I'm going to move externals/javelin/ to some other location to prevent this from happening.

epriestley changed the visibility from "All Users" to "Public (No Login Required)".Nov 2 2018, 5:13 PM