diff --git a/.gitignore b/.gitignore index 5587ec1aa..7b5bc9ce8 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,7 @@ lcm-java/Makefile lcm-java/Makefile.in lcm-java/build/ lcm-java/classnoinst.stamp +lcm-java/javadocs lcm-java/lcm-java.pc lcm-java/lcm-logplayer-gui lcm-java/lcm-spy @@ -38,6 +39,7 @@ lcm-logger/lcm-logplayer lcm-lua/Makefile lcm-lua/Makefile.in +lcm-python/html lcm-python/Makefile lcm-python/Makefile.in diff --git a/NEWS b/NEWS index 71a7b224d..609333609 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,23 @@ +Aug 19, 2014 +============ + + Release 1.1.2 + + This is a bugfix and maintenance release. + + C / C++: + - memset struct msghdr to 0 before calling recvmsg (fixes issue #90). + - fix eventlog memory leak when errors occur. + + lcm-gen: + - Apply patch from bibocc to fix lcm-gen regression (fixes issue #92). + - fix emit-cpp for the case where it needs to includ both and + . + - Resize vector in decode after checking whether the size > 0. + - fix tokenizer regression in parsing empty comment blocks (fixes issue #93). + - Add --version flag. + - Update manpage. + Jul 29, 2014 ============ diff --git a/configure.in b/configure.ac similarity index 98% rename from configure.in rename to configure.ac index 40d4b2c28..36fa1e8fa 100644 --- a/configure.in +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ(2.50) -AC_INIT([lcm], 1.1.1) +AC_INIT([lcm], 1.1.2) AC_CONFIG_SRCDIR([lcm/lcm.h]) AC_CANONICAL_SYSTEM AM_INIT_AUTOMAKE([foreign]) @@ -23,7 +23,7 @@ dnl 3. If the interface changes consist solely of additions, increment AGE. dnl 4. If the interface has removed or changed elements, set AGE to 0. dnl --------------------------------------------------------------------------- LIBLCM_AGE=3 -LIBLCM_REVISION=1 +LIBLCM_REVISION=2 LIBLCM_CURRENT=4 AC_SUBST(LIBLCM_AGE) AC_SUBST(LIBLCM_REVISION) @@ -176,7 +176,7 @@ fi echo " -Configuration (LCM): +Configuration (LCM v${PACKAGE_VERSION}): Source code location: ${srcdir} Compiler: ${CC} diff --git a/docs/release_checklist b/docs/release_checklist index 3e16c077f..54776d490 100644 --- a/docs/release_checklist +++ b/docs/release_checklist @@ -1,34 +1,48 @@ -1. Update NEWS -2. Bump the version number in: - a. configure.in at the line AM_INIT_AUTOMAKE(lcm, x.y.z) +1. Reset your working copy to a clean state + $ git clean -x -d -f +2. Update NEWS +3. Verify that all manpages are up to date. +4. Bump the version number in: + a. configure.ac at the line AM_INIT_AUTOMAKE(lcm, x.y.z) b. lcm-python/setup.py c. lcm/lcm.h -3. Update the AGE, REVISION, and CURRENT variables. See configure.in - comments for details. -4. After committing, check out a clean copy of the repository: - svn co https://lcm.googlecode.com/svn/trunk lcm-rel -5. autoreconf -i -6. ./configure -7. make -8. make distcheck -9. Fix any errors that appear in step 10, and repeat as necessary. +5. Update the AGE, REVISION, and CURRENT variables. See configure.ac + comments for details. +6. autoreconf -i +7. ./configure +8. make +9. make distcheck 10. Take the resulting tarball, extract it, build it, install it, make sure the basic executables run. -11. Upload the tarball to the Google Drive folder. -12. Make sure the outstanding changes are commited to SVN. -13. Update the web site +11. Build and run all unit tests. Verify that they all pass. + $ cd test + $ make clean + $ make +12. Fix any errors that appear in the previous steps, and repeat as necessary. +13. Commit the changes. + $ git commit -a -m "Release X.Y.Z" +13. Create a tag for version X.Y.Z + $ git tag vX.Y.Z +14. Upload the tarball to the Google Drive folder. +15. Make sure the outstanding changes are commited to SVN. +16. Update the web site -14. Build main docs +17. Build main docs $ cd docs $ doxygen - $ copy built docs to www/reference/lcm in the Google Code SVN dir. -15. Update any mime types if necessary: - find . -name "*.html" -exec svn propset svn:mime-type text/html {} \; - find . -name "*.css" -exec svn propset svn:mime-type text/css {} \; - find . -name "*.js" -exec svn propset svn:mime-type text/javascript {} \; - find . -name "*.png" -exec svn propset svn:mime-type image/png {} \; -16. Build Python docs - $ cd lcm-python +18. Build Python docs + $ cd ../lcm-python $ epydoc --config epydoc.cfg - $ copy built docs to www/reference/lcm-python in the Google Code SVN dir. -17. Commit the docs +19. Build Java docs + $ cd ../lcm-java + $ ./make-javadocs.sh +18. Clone the lcm.www repository + $ cd ../.. + $ git clone https://code.google.com/p/lcm.www +19. Copy the built docs to the lcm.www repository + $ cp -r lcm/docs/html/* lcm.www/lcm + $ cp -r lcm/lcm-python/html/* lcm.www/lcm-python + $ cp -r lcm/lcm-java/javadocs/* lcm.www/lcm-java +20. Commit the docs + $ git commit -a -m "Release X.Y.Z documentation" + $ git tag vX.Y.Z diff --git a/lcm-python/setup.py b/lcm-python/setup.py index 11d283a3d..b70583faa 100644 --- a/lcm-python/setup.py +++ b/lcm-python/setup.py @@ -84,6 +84,6 @@ libraries=libraries, extra_compile_args=extra_compile_args) -setup(name="lcm", version="1.1.1", +setup(name="lcm", version="1.1.2", ext_modules=[pylcm_extension], packages=["lcm"]) diff --git a/lcm/eventlog.h b/lcm/eventlog.h index 5278251fe..36322f30b 100644 --- a/lcm/eventlog.h +++ b/lcm/eventlog.h @@ -21,7 +21,9 @@ extern "C" { * @ingroup LcmC * @brief Read and write %LCM log files * - * #include + * @code + * #include + * @endcode * * Linking: `pkg-config --libs lcm` * diff --git a/lcm/lcm.h b/lcm/lcm.h index ade45e1c3..40c8085ae 100644 --- a/lcm/lcm.h +++ b/lcm/lcm.h @@ -34,7 +34,9 @@ extern "C" { * * All %LCM functions are internally synchronized and thread-safe. * - * #include + * @code + * #include + * @endcode * * Linking: `pkg-config --libs lcm` * @{ @@ -319,7 +321,7 @@ int lcm_handle (lcm_t *lcm); * an error occured. */ LCM_API_FUNCTION -int lcm_handle_timeout (lcm_t *lcm, int timeout_milis); +int lcm_handle_timeout (lcm_t *lcm, int timeout_millis); /** * @brief Adjusts the maximum number of received messages that can be queued up @@ -342,9 +344,14 @@ int lcm_handle_timeout (lcm_t *lcm, int timeout_milis); LCM_API_FUNCTION int lcm_subscription_set_queue_capacity(lcm_subscription_t* handler, int num_messages); +/// LCM release major version - the X in version X.Y.Z #define LCM_MAJOR_VERSION 1 + +/// LCM release minor version - the Y in version X.Y.Z #define LCM_MINOR_VERSION 1 -#define LCM_MICRO_VERSION 1 + +/// LCM release micro version - the Z in version X.Y.Z +#define LCM_MICRO_VERSION 2 /** * @} diff --git a/lcmgen/emit_c.c b/lcmgen/emit_c.c index 596d0431d..d40b41df2 100644 --- a/lcmgen/emit_c.c +++ b/lcmgen/emit_c.c @@ -717,8 +717,6 @@ static inline char *str_toupper(char *s) static void emit_c_get_field(lcmgen_t *lcm, FILE *f, lcm_struct_t *ls) { - char buffer[256]; - char *tn = ls->structname->lctypename; char *tn_ = dots_to_underscores(tn); diff --git a/liblcm-test/lcm-sink.c b/liblcm-test/lcm-sink.c index b687335ad..c55c0a11b 100644 --- a/liblcm-test/lcm-sink.c +++ b/liblcm-test/lcm-sink.c @@ -1,4 +1,5 @@ #include +#include #ifndef WIN32 #include #endif diff --git a/test/c/memq_test.cpp b/test/c/memq_test.cpp index b34911eb0..5b7b9a142 100644 --- a/test/c/memq_test.cpp +++ b/test/c/memq_test.cpp @@ -110,4 +110,6 @@ TEST(LCM_C, MemqTimeout) { EXPECT_LT(0, lcm_handle_timeout(lcm, 10000)); EXPECT_EQ(1, msg_handled); + + lcm_destroy(lcm); }