Hi everybody!

As planned, we have now switched the LT source to a module-based Maven 
structure. This mail contains important information about what that means 
for developers. Please read this carefully if you're affected.


Who is affected?

Only people who use svn to access the very latest version of LT. Everyone 
relying on official releases or snapshots is *not* affected.


What do I need to do if I'm affected?

1. If you have local source changes to LT, save them using "svn diff". You 
will then need to re-apply them in the new location manually.

2. Make sure maven is installed. Type "mvn -version" on the command line. 
If Maven returns its version and the version is >= 3.0.2, everything is 
okay. If not, follow the instructions on 
http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html 
(ignoring the "Creating a Project" part). As a Linux user, Maven should be 
provided by your distribution.

3. Check out the new code:

svn co 
https://languagetool.svn.sourceforge.net/svnroot/languagetool/trunk/languagetool

Don't try to commit to the old code anymore, it will not work and you might 
get strange errors. The best thing is to rename or delete your old checkout 
to avoid confusion (keep the diff created in step 1, if any).

4. Change to the "languagetool" directory just checked out and type: "mvn 
clean package". You should get a "BUILD SUCCESSFUL" message after 
everything is compiled and all tests are run. This will take some minutes. 
If you don't get that message and cannot solve the problem, ask for help 
here on this list.

5. If you made commits since last Friday, please check if they are there. I 
merged them but I might have made a mistake.

6. You can now work on LT almost as usual. LT is now made up of several sub 
projects:

* languagetool-core (core classes for Java developers, everything else 
depends on this)

* languagetool-standalone

* languagetool-office-extension

* languagetool-gui-commons (code shared by office extension and standalone 
version)

* languagetool-language-modules/XX with XX being a language code: a module 
for that language, including rules, dictionaries, tests etc. - everything 
related to that language (minus the false friend rules and sentence 
segmentation, which are still in languagetool-core)

Your IDE can probably import them all at once if you import the top 
"pom.xml"

Instead of "ant test", now run "mvn clean test" before you commit a change. 
If you go to the sub-projects and type "mvn clean test" there, only that 
project will be tested. This is useful for the language modules, as only 
that language and its rules will be tested, which if quite fast. Be careful 
though, as the language module depends on the core module and you might get 
strange errors if the core module has changed and you haven't built **and 
installed** it yet. To install a module, use "mvn clean install". This will 
compile and test the module(s) and install the result (the *.jar files) in 
your local Maven repository (~/.m2/repository under Linux). When in doubt, 
run "mvn clean test" in the top directory.

7. If you find problems related to the switch, let me know. I know that not 
everything is working 100% but we should be close. For example, some shell 
scripts are missing / not working yet, and the *.oxt is still called *.zip 
and too big.

Should you still need the old source, it's available here (please don't 
commit anything there!): 
https://languagetool.svn.sourceforge.net/svnroot/languagetool/tags/JLanguageTool-
before-maven-modularization/

Although the switch means quite a bit of work, it is the foundation for 
making LT modular. For now, the modules are only on the source code level, 
but Java developers already benefit from them. Having modules also makes the 
code better, as dependencies are now properly defined.

I hope this switch doesn't cause problems for anybody, but I'm absolutely 
sure that it's the right thing to do. LanguageTool has grown quite a bit 
over the last years - which is a good thing! - and we sometimes need to 
react to that growth to keep things manageable.

Don't hesitate to ask if you have questions.

Regards
 Daniel

-- 
http://www.danielnaber.de


------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
_______________________________________________
Languagetool-devel mailing list
Languagetool-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/languagetool-devel

Reply via email to