wiki:pm-howdoi

Version 15 (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. Install JRE 5.0
  2. Install Eclipse Classic 3.4 and Eclipse IDE for C/C++ Developers (you may not need the first one).
  3. Start Eclipse and choose a workspace location. It is a good idea not to have spaces in directory names.
  4. Go through the "C/C++ Getting started" exercises, all the way through to "debugging". You will find that some Cygwin libraries and exe's are missing along the way. These are in /usr/bin. I had to open a Cygwin window, copy them to /cygdrive/c, and in Windows move them over to C:\WINDOWS. (I didn't have any luck putting c:\cygwin\usr\bin into the PATH variable...Windows just doesn't seem to see any files in that directory -- is it a symbolic link?)
  5. Use the Eclipse Software Update tool to install Subclipse.
  6. Create the subversion repository (eg. https://projects.coin-or.org/svn/Smi) in the Subclipse view.
  7. Checkout the project (eg. trunk) as a "normal project" into a directory in your Eclipse workspace.
  8. Obtain the fixed version of make 3.81 (see the CoinHelp? for this issue) to get past the "multiple targets" issue.
  9. Open a Cygwin window, cd to the checkout directory, and run configure/make/make test/make install as usual.
  10. Create a C++ Project for your library or executable. Choose "Makefile Project", and uncheck "default location". Browse to the location of the project root (for example, trunk/Smi). Be sure that Cygwin GCC is selected as the toolchain.
  11. 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!).
  12. From here on, the CDT Help documentation works pretty well. For example, to automate the build settings, open project "properties" and edit the C/C++ Build property page to fine tune the automated build behavior.
  13. I had some problems with one of my projects Smi/examples not finding include directories. After much putzing around I discovered that the generated Makefile had somehow gotten the wrong paths for COININCDIR and COINLIBDIR. I'm not sure what the path issue is, but the lesson is to look at the Makefile first. All the settings for the CDT project are generated from the Makefile.

A final note. The CDT project perspective looks very good. All the classes and methods are displayed correctly. 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 the Makefiles.