From a0fb4f5f31157be846be2da3e0826827715307a3 Mon Sep 17 00:00:00 2001 From: Andy Rudoff Date: Tue, 30 Jun 2015 21:45:27 -0600 Subject: [PATCH] doc: prepare for 0.2 release --- ChangeLog | 14 +++---- README.md | 115 ++++++++++++++++++++++++++++++++++++++---------------- 2 files changed, 89 insertions(+), 40 deletions(-) diff --git a/ChangeLog b/ChangeLog index 79d2991baa1..a05076bd3e8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,16 +1,16 @@ -Mon Jun 22 2015 Andy Rudoff +Tue Jun 30 2015 Andy Rudoff * Version 0.2 NVML now consists of six libraries: - libpmem (basic pmem flushing, etc) - libpmemblk, libpmemlog, libpmemobj (transactions) - libvmem, libvmmalloc (volatile use of pmem) + - libpmem (basic flushing, etc) + - libpmemblk, libpmemlog, libpmemobj (transactions) + - libvmem, libvmmalloc (volatile use of pmem) The "pmempool" command is available for managing pmem files. Man pages for all the above are complete. The only things documented in man pages but not implemented are: - pmem sets (ability to spread a pool over a set of files) - replication (coming for libpmemobj) - The pmempool command's support for pmemobj pools is minimal for now. + - pmem sets (ability to spread a pool over a set of files) + - replication (coming for libpmemobj) + The pmempool command does not yet support pmemobj type pools. Thu Sep 11 2014 Andy Rudoff diff --git a/README.md b/README.md index a5c748003e8..8ab00e42310 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,44 @@ nvml: Linux NVM Library This is the top-level README.md the Linux NVM Library. For more information, see http://pmem.io. -Please see the file LICENSE for information on how this library is licensed. +|**NOTE**| +|:------:| +|**These libraries are not yet considered production quality, but they are getting close! We expect to validate them to production quality by the end of September, 2015. The libraries are currently validated to "early access" quality, usable for development of pmem-aware applications. You are encouraged to try them out and give us feedback via our [Google group](http://groups.google.com/group/pmem).**| -This tree contains libraries for using Non-Volatile Memory (NVM). -Here you'll find: +### The Libraries ### + +Please see the file [LICENSE](https://github.com/pmem/nvml/blob/master/LICENSE) for information on how this library is licensed. + +This tree contains a collection of libraries for using Non-Volatile Memory +(NVM). There are currently six libraries: + +* **libpmem** -- basic pmem operations like flushing +* **libpmemblk**, **libpmemlog**, **libpmemobj** -- pmem transactions +* **libvmem**, **libvmmalloc** -- volatile use of pmem + +These libraries are described in more detail on the +[pmem web site](http://pmem.io). There you'll find man pages, examples, +and tutorials. + +**Currently, these libraries only work on 64-bit Linux.** + +### Pre-Built Packages ### + +If you want to install these libraries to try them out of your system, you can +either install pre-built packages, which we build for every stable release, or +clone the tree and build it yourself. + +Builds are tagged something like `0.2+b1`, which means +*Build 1 on top of version 0.2* and `0.2-rc3`, which means +*Release Candidate 3 for version 0.2*. **Stable** releases +are the simpler *major.minor* tags like `0.2`. To find +pre-build packages, check the Downloads associated with +the stable releases on the +[github release page](https://github.com/pmem/nvml/releases). + +### Building The Source ### + +The source tree is organized as follows: * **doc** -- man pages describing each library contained here * **src** -- the source for the libraries @@ -26,42 +60,26 @@ the build system. See the **before_install:** rules in the file at the top level of the repository to get an idea what packages were required to build on the _travis-ci_ (Ubuntu-based) systems. -Once the build system is setup, the NVM Library is built using -this command at the top level: -``` - $ make -``` - -To build and run the unit tests: -``` - $ make check -``` - -To run a specific subset of tests, run for example: +To build the latest development version, just clone this tree and build the master branch: ``` - $ make check TEST_TYPE=short TEST_BUILD=debug TEST_FS=pmem + $ git clone https://github.com/pmem/nvml + $ cd nvml ``` -To modify the timeout which is available for **check** type tests, run: -``` - $ make check TEST_TIME=1m -``` -This will set the timeout to 1 minute. - -Please refer to the **src/test/README** for more details on how to -run different types of tests. - -To compile this library with enabled support for the PM-aware version -of [Valgrind](https://github.com/pmem/valgrind), supply the compiler -with the **USE_VALGRIND** flag, for example: +Once the build system is setup, the NVM Library is built using +this command at the top level: ``` - $ make EXTRA_CFLAGS=-DUSE_VALGRIND + $ make ``` -To install this library into the standard locations -(/usr/lib, /usr/include, /usr/share/man), become root and: +Once the make completes, all the libraries are built and the examples +under `src/examples` are built as well. You can play with the library +within the build tree, or install it locally on your machine. Installing +the library is more convenient since it installs man pages and libraries +in the standard system locations: ``` - $ make install + (as root...) + # make install ``` To install this library into other locations, you can use @@ -88,6 +106,37 @@ To build dpkg packages on Debian-based distributions: ``` **Prerequisites:** devscripts +### Testing the Libraries ### + +To build and run the unit tests: +``` + $ make check +``` + +To run a specific subset of tests, run for example: +``` + $ make check TEST_TYPE=short TEST_BUILD=debug TEST_FS=pmem +``` + +To modify the timeout which is available for **check** type tests, run: +``` + $ make check TEST_TIME=1m +``` +This will set the timeout to 1 minute. + +Please refer to the **src/test/README** for more details on how to +run different types of tests. + +To compile this library with enabled support for the PM-aware version +of [Valgrind](https://github.com/pmem/valgrind), supply the compiler +with the **USE_VALGRIND** flag, for example: +``` + $ make EXTRA_CFLAGS=-DUSE_VALGRIND +``` + + +### Contacts ### For more information on this library, -contact Andy Rudoff (andy.rudoff@intel.com). +contact Andy Rudoff (andy.rudoff@intel.com) or post to our +[Google group](http://groups.google.com/group/pmem).