= Platform Infrastructure Overview = The infrastructure is all the development tools and communication channels for teamwork, which we use to synchronize and do our work, so we can make it fast and easy. Below are the things you should have and which you should know for starting work on Sophie 2.0. == Accounts == You must have and give to us: * google mail - sign in our googlegroups: * [http://groups.google.com/group/sophie2-devs Developers Mail Group] * [http://groups.google.com/group/sophie2-users Users Mail Group] * and if you are working for Astea Solutions: * [http://groups.google.com/group/astea-jr Astea JR Group] * [http://groups.google.com/group/astea-everyone Astea Everyone Group] * skype account * Phone number * svn account * TRAC account == Every machine should have == * at least two users * for private usage - you choose your username and password * for public usage * Windows - * username: ask * password: ask * Linux - * username: ask * password: ask * text editor (notepad++ for example - download: http://notepad-plus.sourceforge.net/uk/site.htm) * web browser (we use Mozilla Firefox, Chrome or Opera) * pdf reader (Adobe Acrobat) * flash player * Skype * for communication with the team. Give your username to us. * download: http://www.skype.com/intl/en/download/skype/windows/ * Sophie * Sophie Author - http://opensophie.org/en/downloads/sophieauthor * Sophie Reader - http://opensophie.org/en/downloads/sophiereader Visit [wiki:PLATFORM_NFR_COMPATIBILITY] to see hardware, software and platform requirements and the supported OSes. === Trac === For documentation and bug tracking system we use Trac - build-in wiki engine.[[BR]] You can open Trac * From inside the office: http://10.10.117.11:8000/sophie2/ * From outside: http://asteasolutions.net:7080/sophie2/ More info about working with Trac and some document templates: [wiki:TracWiki][[BR]] You can visit the [wiki:PROCESS] page, there are some rules about using our Trac. [[BR]] More info about bug and task tracking: [wiki:SCS_ISSUE_TRACKER_SETUP_R0][[BR]] Here is our workflow using Trac tickets: [wiki:SCS_ISSUE_TRACKER_SETUP_R1] === Subversion Client === * more info: Subversion is version control system for various kinds of files. It is widely used as source control for teamwork and is newer than CVS, which is old version control system. * example: on Windows we use TortoiseSVN * download: http://tortoisesvn.net/download * useful URLs: * http://subversion.tigris.org/ - official site of Subversion * http://en.wikipedia.org/wiki/Concurrent_Versions_System - information about CVS * http://svnbook.red-bean.com/ - book about Subversion * http://wiki.freaks-unidos.net/Apache2%20SSL%20and%20Subversion%20in%20Debian - installing Subversion under debian === Development Tools === On every machine for developing these programs must be set up: ==== Java 6 ==== * Java is general purpose programming language. It is used for developing Sophie 2.0 * homepage: http://java.sun.com/ - the official site about Java and Java technologies * http://java.sun.com/docs/books/tutorial/ - useful Java tutorial * http://en.wikipedia.org/wiki/Java_Development_Kit - what is JDK * download: http://java.sun.com/javase/downloads/index.jsp ==== Eclipse 3.4 ==== * Eclipse is a software platform comprising extensible application frameworks, tools and a runtime library for software development and management. It is written primarily in Java to provide software developers and administrators an integrated development environment. * homepage: http://www.eclipse.org/ * http://en.wikipedia.org/wiki/Eclipse_%28software%29 - common information * http://www.eclipse.org/documentation/ - official documentation for Eclipse * http://help.eclipse.org/help33/index.jsp - Workbench Tutorial -- detailed friendly tutorial for working with the Eclipse Workbench. * https://eclipse-tutorial.dev.java.net/ -- not bad tutorial for Eclipse * download: http://www.eclipse.org/downloads/ It is preferable to choose Eclipse IDE for Java EE developers - it is equipped with useful plug-ins. * here are some useful eclipse shortcuts: http://www.allapplabs.com/eclipse/eclipse_shortcuts.htm * the information how to deploy Sophie project in Eclipse is in [wiki:PLATFORM_DEPLOYMENT_BUILD_ECLIPSE] === Eclipse Plug-ins === ==== Subclipse ==== * Subclipse is plug-in for SVN integration with the Eclipse IDE. It allows users to deploy Subversion in their projects. You can use source control directly from the Package Browser from the Eclipse IDE. * Installing Subclipse * Go to http://subclipse.tigris.org/install.html. Follow the installation instructions up to step 11. Pay special attention on step 6 - be sure to check out only the Sublicpse Update site and the Subclipse box below it (no other components are needed). * Deploying a project in a repository See [wiki:PLATFORM_DEPLOYMENT_BUILD_ECLIPSE] * Checkout the project repository * From your OS: 1. In a new empty folder choose "Create repository here" option 1. Choose "SVN Checkout...". Enter the URL of the repository of the Sophie2 project. The URL is SVN://asteasolutions.net:7369/sophie2. 1. Choose your checkout directory(sophie2-repo). It is set by default to be the empty folder in which you choose "SVN Checkout...". 1. Write your username and password for the repo(take them from Milo). Now you have local project repository. * Basic Functionality of Sublipse * Once you have created a project you can use Subclipse from the package explorer of your IDE. The files and directories that are under source control are noted with a symbol in the bottom right corner of the icon. Star(asterix) is used if the file is not synchronized with the repository and a yellow cylinder is used if the files match the repository structure. In the bottom left corner of the icon appears a red "x" if there are compilation errors in the code and a yellow "!" if there are warnings. * We must not commit source that has errors, so that all users can always build and run the current version of the project. * We must not commit other files except source code. * "Team" menu * Once you have imported a project from a repository, in the Package Explorer appears a new "Team" menu. 1. Update is used to get the latest version from the repository. 1. Commit is used to commit the changes that you have made on your local copy. 1. Revert is used to revert the changes you have made on your local to the current version in the repository. 1. You can revert to previous versions. Just uncheck Switch to HEAD revision and choose the revision to which you want to switch * Conflicts * When two users (usr1 and usr2) edit the same file, usr1 commits the changes and then usr2 tries to commit a conflict occurs. Usr2 cannot commit, because usr1 has already made changes. Then merging should be done. As the merging tool of the Eclipse IDE is very poor, I suggest we use !TortoiseMerge. Download TortoiseSVN from http://tortoisesvn.net/downloads. Install it. From the Eclipse IDE choose Window/Preferences/Team/SVN/DiffMerge/. Choose External editor and choose the !TortoiseMerge.exe. In the "Variables" line add the following options: /theirs:"${theirs}" /base:"${base}" /mine:"${yours}" /merged:"${merged}" Now you have integrated !TortoiseMerge in Sublcipse. Whenever you get a conflict while trying to commit, choose /Team/Update. If the conflict can be automatically merged, it is done. Otherwise files with differences are created. Choose /Team/Edit Conflicts. !TortoiseMerge opens and you can merge the files. On the left is the repository version, on the right your version, bellow are the results from the merge(you can edit this version). When you synchronize the files (no conflicts are left) save and from the Eclipse IDE choose /Team/Mark Resolved. You can commit now without conflicts for errors. Do visit http://tortoisesvn.tigris.org/TortoiseMerge.html for an intuitive five minutes tutorial on !TortoiseMerge. ==== M2 Eclipse ==== info: http://m2eclipse.codehaus.org/Maven_2.0_Plugin_for_Eclipse.html See [wiki:PLATFORM_INFRASTRUCTURE_OVERVIEW#MavenIntegration] for installation guide. ==== !PyDev ==== !PyDev is Eclipse plug-in for Python development.[[BR]] info: http://pydev.sourceforge.net/index.html[[BR]] download: http://pydev.sourceforge.net/download.html === Maven Integration === We use Maven for managing the project's builds, reporting, documentation and other information about the progress. * download: http://maven.apache.org/download.html - version 2.0.9 * Installation for Windows and Linux OSes: http://maven.apache.org/download.html - below the download packages * Note: Be careful with the PATH variable under Windows, you have to write the whole path to the bin directory not using M2_HOME variable to set the new path * Integration with Eclipse * (for Eclipse 3.4 Classic version)update your Eclipse platform so there is Equinox Provisioning Platform in Installed Software (Help->Software Updates) * download the M2 Eclipse Plug-in: http://m2eclipse.sonatype.org/update/ * minimal package requirements for running the project - Maven Integration for Eclipse, Maven Embedder, Maven POM XML Editor * Note: make sure that Eclipse runs with JDK not JRE (see Window-Preferences-Java-Installed JREs, edit eclipse.ini with -vm or set correct PATH and JAVA_HOME variables) * See [source:trunk/sophie2-platform/old/lib/readme.txt] . In the bottom of the file are three mvc commands you have to execute to set the needed libraries which are not found in the Maven repository. * once you have integrate Maven with your Eclipse, in the Package Explorer appears a new "Maven" menu. From there you can: * Update Dependencies: you can force a refresh of the Maven Dependencies container and force downloading of artifact snapshots (regardless of the Maven repository refresh policy) by using the "Update Dependencies" * Update Project Configuration: can be used to refresh or recreate the Eclipse project configuration based on the content of the Maven pom.xml, for example, when changes in pom.xml affect the project structure (folders settings, plugins that dynamically add folders or have other configuration). * right-click on the project in Eclipse, and click Maven/Update Dependencies to finish integration == Optional accounts and tools == Accounts: * ICQ account * [http://asteasolutions.net/mediawiki/ old wiki] account Tools: * VNC Client * more about what is Virtual Network Computing: http://en.wikipedia.org/wiki/VNC * We use TightVNC on Linux OSes - download: http://www.tightvnc.com/download.html * and Ultra VNC for Windows - download: http://ultravnc.en.softonic.com/ * Visual Paradigm * Visual Paradigm for UML is a UML CASE Tool supporting UML 2.1.[[BR]] * We use Community Edition - it is free. More info: http://www.visual-paradigm.com/product/vpuml/communityedition.jsp[[BR]] * You have to register to download it: http://www.visual-paradigm.com/product/vpuml/vpumldownload.jsp?edition=ce * Apache Ant * This is is a software tool for automating software build processes. It is similar to make but is implemented using the Java language, requires the Java platform, and is best suited to building Java projects. You can use it to create Sophie 2.0 build instead of doing this with Maven. See [wiki:PLATFORM_DEPLOYMENT_BUILD_ANT] for more information about the usage * download: http://ant.apache.org/bindownload.cgi === Comments === * When installing M2 Eclipse Plug-in remove the "Maven Integration for AJDT", otherwise there are missing dependencies and the instalation can not continue.