wiki:pm-howdoi

Version 17 (modified by kingaj, 11 years ago) (diff)

--

How Do I ...?

How do I (projectManagerX) give svn write access to someone (personY)?

A: Just a few easy steps...

  1. Ask for personY's uid. If they don't have one, they need to create one by registering on Trac. There's a little red "Register" word on the upper right-hand-side of the Trac page. SVN and Trac currently use the same file for authentication.
  2. The system requires a CSRO on file for everyone with write-access. Check to see if personY has a CSRO on file by looking at the list of people with CSROs on file. If personY is not on the list, ask personY to fill out the CSRO form and send it to secretary@…. The secretary will update the web list.
  3. If personY just submitted an CSRO, their uid needs to be manually added to the file on the server of people with CSROs. (This file is how we automatically ensure only people with CSRO's on file are making commits to the repository). Currently, only Laci Ladanyi and Matthew Saltzman have permissions to edit this file. Send a request to Laci or Matt with the uid.
  4. Edit the "perms.txt" configuration file

How do I update my project's .xml (e.g., http://www.coin-or.org/projects/Cgl.xml) ?

A: You don't! It's automatic. You don't need to do anything other than commit the new stable/release version of your project. It works as follows:

  1. Your Cgl/conf/projDesc.xml file is the same as the source code http://www.coin-or.org/projects/Cgl.xml (Cgl.xml is not generated it is just a copy of projDesc.xml) and this xml file is what the browser downloads.
  2. The browser also simultaneously downloads http://www.coin-or.org/projects/autoGen.xsl/
  3. The autoGen.xsl is code I wrote in XSLT - Exstensible Style Sheet Language Translation. The autoGen.xsl code is read by the browser. Modern browsers have XSLT engines that generates the html you actually view based on the xml file.
  4. In the autoGen.xsl there is code that looks for your project name. Based on your program name it automatically downloads to the browser the png file http://www.coin-or.org/LatestRelease/Cgl-latest-stable.png . This file is updated daily on the COIN-OR server based on Laci's scripts. Note: The project name needs to be the exact match for the project name so the png file can be found. For exmample, if the CoinUtils.xml file filled out as
    <projectName>COIN-OR Utilities</projectName> 
    

this would cause a problem, becuase the "official" project name is "CoinUtils" and CoinUtils is what needs to be in the <projectName> tag.

Does anyone have experience with building Coin with Eclipse CDT on Cygwin?

A: Here is what I have done so far. It is a long list, so I (kingaj) am writing it here. Please feel free to edit:

  1. Downloads and Install
    1. Install Cygwin.
      1. Obtain the fixed version of Cygwin make 3.81 to get past the "multiple targets" bug. See https://projects.coin-or.org/BuildTools/wiki/current-issues for this issue.
      2. Put the directory <cygwin_root>/bin into your Windows PATH environment variable.
    2. Install JDK 5.0 or 6.0.
    3. Install Eclipse IDE for C/C++ Developers.
  1. Set up Eclipse
    1. Start Eclipse and choose a workspace location. It is a good idea not to have spaces in directory names.
    2. Open up the Help documentation and get familiarized with Eclipse.
    3. Use the Eclipse Software Update tool to install Subclipse.
    4. Go through the "C/C++ Getting started" exercises, all the way through to "debugging".
      1. If you find that some Cygwin libraries or exe's are missing you may have to copy them to a location in your Windows PATH.
  1. Set up Coin
    1. Create the subversion repository (eg. https://projects.coin-or.org/svn/Smi) in the Subclipse view.
    2. Checkout your project (eg. trunk) as a "normal project" into a directory in your Eclipse workspace.
    3. Open a Cygwin window, cd to the checkout directory, and run configure/make/make test/make install as usual.
  1. Create a C++ Project for your library.
    1. Choose "Makefile Project".
    2. Uncheck "default location" and browse to the location of the project root (for example, trunk/Smi).
    3. Right click the project and create Make targets ("all" and "test" are good choices) and try to build. This worked the first time for me (surprise!).
  1. Create a C++ Project for an example.
    1. Choose "Executable". This will be a CDT "Managed Makefile" project.
    2. Uncheck "default location" and browse to the location of the project root (for example, trunk/Smi/examples).
    3. Right click the project and select "Properties->C/C++ Build->Settings". In here you can add includes for the C++ Compiler and libraries for the Linker.
      1. If there are multiple main programs in this directory it will complain. Just delete the ones you don't need for now. In your next release you can reorganize your examples into subdirectories.

A final note. The CDT project perspective looks very good. CDT has matured greatly since I last looked a few years ago, and it looks like it could be a fine replacement for MSVC++ for Coin development -- especially since now the CDT picks up all project information directly from Makefiles, so there is no need to maintain separate project files.

One minor annoyance that takes some getting used to, is that the Eclipse "environment" is inherited from Windows and not from Cygwin. The CDT locates and binds symbols to some of the Cygwin things you need, like g++, gdb, make, but not all