You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Rahul Akolkar <ra...@gmail.com> on 2010/05/22 20:12:20 UTC

[scxml-js] Layout and unreleased dependencies (was: preparing initial commit)

On Sat, May 22, 2010 at 7:47 AM, Jacob Beard <jb...@cs.mcgill.ca> wrote:
> Thanks all for the replies.
>
> Dennis, Maven for JavaScript sounds really promising, I'll definitely
> look into it.
>
> If anyone is interested in looking at the project, I've my the initial
> commit, which you can find here:
>
> https://svn.apache.org/repos/asf/commons/sandbox/gsoc/2010/scxml-js/trunk/
>
<snip/>

Certainly interested :-) Will take a look over the next week.

Two higher order comments:

 * Its good to have begun in SVN with what you have working. The
layout and build can now be incrementally (or disruptively, as the
case may be) improved. Whenever moving any files or directories,
please use 'svn mv' to move artifacts around while maintaining SVN
history.

 * Be wary of unreleased dependencies (both for the library itself and
the build). This is because, if at some point, if we consider
promoting this code out of sandbox and releasing it (either as its own
component or a module of Commons SCXML), then it cannot have any
dependencies on unreleased code (includes Maven plugins and tools).
Its great that Dennis has offered to help with a JavaScript Maven
Tools release if needed, that makes it a better scenario, but assume
sufficient lead times during which it may be harder for others to
build.

-Rahul


> Thanks,
>
> Jake
>
> On Sat, May 22, 2010 at 7:23 AM, sebb <se...@gmail.com> wrote:
>> On 22/05/2010, Dennis Lundberg <de...@apache.org> wrote:
>>> On 2010-05-19 17:43, Jacob Beard wrote:
>>>  > Rahul, thanks for the feedback.  Please see my replies below:
>>>  >
>>>  > On Tue, May 18, 2010 at 11:08 PM, Rahul Akolkar <ra...@gmail.com> wrote:
>>>  >>
>>>  >> Also take a look at the YUI Loader if you haven't already:
>>>  >>
>>>  >>  http://developer.yahoo.com/yui/yuiloader/
>>>  >>
>>>  > <snip/>
>>>  >
>>>  > I have looked into the YUI loader. The API is similar in style to
>>>  > RequireJS. Unfortunately, I couldn't find any documentation that
>>>  > suggested it could be used under Rhino, so this made it inappropriate
>>>  > for this project.
>>>  >
>>>  >>
>>>  >> Yup, either RequireJS or YUI Loader seems to make sense (I haven't
>>>  >> used the former).
>>>  >>
>>>  >> Though I imagine we'd be producing a complete rollup of the compiler at the end.
>>>  > <snip/>
>>>  >
>>>  > Yes, and this is one way in which Dojo is useful: it comes with
>>>  > tooling for creating custom builds, so that all modules are combined
>>>  > into one JavaScript file, and the code is minimized. RequireJS is
>>>  > supposed to have similar functionality, but I've never used it, so
>>>  > this remains to be seen.
>>>  >
>>>  >>
>>>  >> Right, we probably want more structure than a single directory and the
>>>  >> m2 layout will seem familiar. OTOH, the m2 layout means little if it
>>>  >> isn't an m2 build. So I'd say pick something to your liking and we can
>>>  >> always move stuff around in SVN later as needed.
>>>  >>
>>>  > <snip/>
>>>  >
>>>  > Here's my proposed project structure:
>>>  >
>>>  > /
>>>  >
>>>  >       src/
>>>  >       test/
>>>  >       lib/
>>>  >               java/
>>>  >               test-java/
>>>  >               javascript/
>>>  >               test-javascript/
>>>
>>>
>>> Hi Jacob and welcome aboard
>>>
>>>  I spend a lot of time over in Maven land, and like to give some feedback
>>>  on your proposed build and structure.
>>>
>>>  Even though Maven may not be the tool used to build your project in the
>>>  end, it will be a benefit to use Maven's standard directory layout [1]
>>>  when you structure the code. This will help others Commons developers to
>>>  quickly identify the different parts of your project.
>>>
>>>  My experience with developing in JavaScript is minimal, but I do think
>>>  that your project can benefit from using Maven. The two areas I spot
>>>  right away is downloading dependencies and packaging the project.
>>>  Another thing that you should have a look at is the JavaScript Maven
>>>  Tools [2]. These don't yet have a release, but if you try them out and
>>>  feel that they work for your project, I can help make a release happen
>>>  for you. The tools also proposes extensions to Maven's standard
>>>  directory layout, specifically for JavaScript development.
>>>
>>>  With that said I propose that you use the standard layout described at
>>>  [2] even if you decide not to use Maven as a tool for the project. This
>>>  layout does not have a specific location for dependencies, i.e. your
>>>  /lib directory, because those are stored outside of the project
>>>  structure in a project build using Maven. If you decide to not use Maven
>>>  then /lib is a good place to put your dependencies in.
>>>
>>>  If you have any questions regarding Maven don't hesitate to contact me.
>>>
>>>  [1]
>>>  http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html
>>>  [2] http://mojo.codehaus.org/javascript-maven-tools/index.html
>>
>> I'd just add that Maven is also used to build all the Commons websites.
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org