Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 0 additions & 28 deletions .github/ISSUE_TEMPLATE.md

This file was deleted.

26 changes: 0 additions & 26 deletions .github/ISSUE_TEMPLATE/feature.md

This file was deleted.

15 changes: 0 additions & 15 deletions .github/ISSUE_TEMPLATE/question.md

This file was deleted.

8 changes: 4 additions & 4 deletions CODING_STYLE.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ coded in the same style as the file being modified.

### Code formatting
Most of the common stylistic errors can be detected by the
[style checker program](https://github.com/pmem/pmdk/blob/master/utils/cstyle)
[style checker program](utils/cstyle)
included in the repo.
Simply run `make cstyle` to verify if your code is well-formatted.

Expand All @@ -47,7 +47,7 @@ Otherwise, just use `unsigned`, `long`, etc.
### License & copyright
- Make sure you have the right to submit your contribution under the BSD license,
especially if it is based upon previous work.
See [CONTRIBUTING.md](https://github.com/pmem/pmdk/blob/master/CONTRIBUTING.md) for details.
See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
- Place a [SPDX short-form identifier](https://spdx.dev/learn/handling-license-info/) for
the BSD-3-Clause license at the beginning of each new source file, script or man page.
(Obviously, it does not apply to README's, Visual Studio projects and \*.match files.)
Expand Down Expand Up @@ -81,8 +81,8 @@ log level for most frequently called routines.
### Unit tests
- There **must** be unit tests provided for each new function/module added.
- Test scripts **must** start with `#!/usr/bin/env <shell>` for portability between Linux and FreeBSD.
- Please, see [this](https://github.com/pmem/pmdk/blob/master/src/test/README)
and [that](https://github.com/pmem/pmdk/blob/master/src/test/unittest/README)
- Please, see [this](src/test/README)
and [that](src/test/unittest/README)
document to get familiar with
our test framework and the guidelines on how to write and run unit tests.

Expand Down
37 changes: 6 additions & 31 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,10 @@
# Contributing to the Persistent Memory Development Kit

Down below you'll find instructions on how to contribute to the
Persistent Memory Development Kit.
Please [contact us](README.md#contact-us) before contributing any changes.

Your contributions are most welcome! You'll find it is best to begin
with a conversation about your changes, rather than just writing a bunch
of code and contributing it out of the blue.
There are several good ways to suggest new features, offer to add a feature,
or just begin a dialog about the Persistent Memory Development Kit:
**NOTE**: We do not accept feature requests not related to the [DAOS Project](https://daos.io/).

* Open an issue in our [GitHub Issues Database](https://github.com/pmem/pmdk/issues)
* Suggest a feature, ask a question, start a discussion, etc. in our [pmem Google group](https://groups.google.com/group/pmem)
* Chat with members of the PMDK team real-time on the **#pmem** IRC channel on [OFTC](https://www.oftc.net)

**NOTE: If you do decide to implement code changes and contribute them,
**NOTE: When implementing code changes and contribute them,
please make sure you agree your contribution can be made available
under the [BSD-style License used for the Persistent Memory Development Kit](LICENSE.txt).**

Expand Down Expand Up @@ -60,9 +51,7 @@ Author: Random J Developer <random@developer.example.org>

### Code Contributions

Please feel free to use the forums mentioned above to ask
for comments & questions on your code before submitting
a pull request. The Persistent Memory Development Kit project uses the common
The Persistent Memory Development Kit project uses the common
*fork and merge* workflow used by most GitHub-hosted projects.
The [Git Workflow blog article](https://pmem.io/2014/09/09/git-workflow.html)
describes our workflow in more detail.
Expand All @@ -88,18 +77,11 @@ no clang-format or it pointing to an older version. In such case run:
$ make CLANG_FORMAT=/path/to/clang-format cstyle|format
```

If you are actively working on a PMDK feature, please let other
developers know by [creating an issue](https://github.com/pmem/pmdk/issues).
Use the template `Feature` and assign it to yourself (due to the way
GitHub permissions work, you may have to ask a team member to assign it to you).

### Bug Reports

Bugs for the PMDK project are tracked in our
[GitHub Issues Database](https://github.com/pmem/pmdk/issues).
Before reporting a new bug please check if it is not already known: [here](https://daosio.atlassian.net/issues?jql=component%20%3D%20PMDK%20ORDER%20BY%20created%20DESC) or [here](https://github.com/pmem/pmdk/issues).

When reporting a new bug, please use `New issue` button, pick proper template and fill
in all fields. Provide as much information as possible, including the product version:
To report a bug please [contact us](README.md#contact-us) and use the [template](.github/ISSUE_TEMPLATE/bug_report.md).

#### PMDK version

Expand Down Expand Up @@ -131,10 +113,3 @@ that the bug does not prevent the next release of the library.
* **P3**: Medium-priority bug. The expectation is that the bug will be
evaluated and a plan will be made for when the bug will be resolved.
* **P4**: Low-priority bug, the least urgent. Fixed when the resources are available.

### Other issues

On our issues page we also gather feature requests and questions. Templates to use
are `Feature` and `Question`, respectively. They should help deliver a meaningful
description of a feature or ask a question to us (remember though we have
different means of communication, as described at the top of the page).
33 changes: 4 additions & 29 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,26 +17,16 @@ You will need to install the following required packages on the build system:
* **libdaxctl-devel** (v63 or later)
* **pandoc** (for documentation, required during install)

The following packages are required only by selected PMDK components
or features:

PMDK depends on libndctl and libdaxctl to support RAS features. It is possible
to disable this support by passing `NDCTL_ENABLE=n` to `make`, but we strongly
discourage users from doing that. Disabling NDCTL strips PMDK from ability to
detect hardware failures, which may lead to silent data corruption.
For information how to disable RAS at runtime for kernels prior to 5.0.4 please
see https://github.com/pmem/pmdk/issues/4207.

## Building PMDK

To build from source, clone this tree:

```sh
git clone https://github.com/pmem/pmdk
git clone https://github.com/daos-stack/pmdk
cd pmdk
```

For a stable version, checkout a [release tag](https://github.com/pmem/pmdk/releases) as follows. Otherwise skip this step to build the latest development release.
For a stable version, checkout a [release tag](https://github.com/daos-stack/pmdk/releases) as follows. Otherwise skip this step to build the latest development release.

```sh
git checkout tags/2.1.3
Expand All @@ -48,21 +38,6 @@ Once all required [dependencies](#dependencies) are installed, PMDK is built usi
make
```

By default, all code is built with the `-Werror` flag, which fails
the whole build when the compiler emits any warning. This is very useful during
development, but can be annoying in deployment. If you want to disable `-Werror`,
use the `EXTRA_CFLAGS` variable:

```sh
make EXTRA_CFLAGS="-Wno-error"
```

>or

```sh
make EXTRA_CFLAGS="-Wno-error=$(type-of-warning)"
```

## Installing PMDK

After compiling the libraries, you can install them:
Expand Down Expand Up @@ -107,7 +82,7 @@ Both building and installation scripts are very flexible. To see additional opti

### Memory Management Tools

The PMDK libraries support standard Valgrind DRD, Helgrind and Memcheck, as well as a PM-aware version of [Valgrind](https://github.com/pmem/valgrind).
The PMDK libraries support standard Valgrind DRD, Helgrind and Memcheck, as well as a PMEM-aware version of [Valgrind](https://github.com/pmem/valgrind).
By default, support for all tools is enabled. If you wish to disable it, supply the compiler with `VALGRIND` flag set to 0:

```sh
Expand All @@ -128,7 +103,7 @@ To enable logging of debug information, use debug version of a library and set
desired log level using (library-specific) variable, e.g. `PMEM_LOG_LEVEL=<level>`.

For more details see appropriate manpage (debbuging section), e.g.
[libpmem(7)](https://github.com/pmem/pmdk/blob/master/doc/libpmem/libpmem.7.md#error-handling-1).
[libpmem(7)](doc/libpmem/libpmem.7.md#error-handling-1).

## Experimental Packages

Expand Down
12 changes: 5 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,9 @@

The **Persistent Memory Development Kit (PMDK)** is a collection of libraries and tools for System Administrators and Application Developers to simplify managing and accessing persistent memory devices. For more information, see https://pmem.io.

To install PMDK libraries please clone the tree and build it yourself. Specific installation instructions are outlined below.
The only supported user is the [DAOS Project](https://daos.io/). Bugs and feature requests for PMDK are tracked [here](https://daosio.atlassian.net/issues?jql=component%20%3D%20PMDK%20ORDER%20BY%20created%20DESC). Older known issues can be found [here](https://github.com/pmem/pmdk/issues).

Pre-built packages can be found in popular Linux distribution package repositories but we do not keep them anymore up to date because of the limited resources.

Bugs and feature requests for this repo are tracked in our [GitHub Issues Database](https://github.com/pmem/pmdk/issues).
PMDK is delivered as part of a DAOS release. If you want to experiment with PMDK without DAOS it is recommended to build it yourself as outlined [below](#building-and-installing). Pre-built packages found in popular Linux distribution package repositories are no longer kept up to date.

## Contents
1. [Libraries and Utilities](#libraries-and-utilities)
Expand Down Expand Up @@ -59,16 +57,16 @@ Additionally, we recommend reading [Introduction to Programming with Persistent

## Version Conventions

- **Release Candidates** have a '-rc{version}' tag, e.g. `0.2-rc3`, meaning _Release Candidate 3 for version 0.2_
- **Stable Releases** use a _major.minor_ tag like `0.2`
- **Release Candidates** have a '-rc{version}' tag, e.g. `0.2.0-rc3`, meaning _Release Candidate 3 for version 0.2.0_
- **Stable Releases** use a _major.minor.patch_ tag like `0.2.0`.

## Building and installing

Install a few [dependencies](INSTALL.md#dependencies) and then build and install PMDK in the system.

```sh
# get the source code
git clone https://github.com/pmem/pmdk
git clone https://github.com/daos-stack/pmdk
cd pmdk
# build
make -j
Expand Down
2 changes: 1 addition & 1 deletion RELEASE_STEPS.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ git commit --reset-author

## 5. Publish package and make it official

- go to [GitHub's releases tab](https://github.com/pmem/pmdk/releases/new) and fill in the form:
- go to [GitHub's releases tab](https://github.com/daos-stack/pmdk/releases/new) and fill in the form:
- tag version: $VERSION,
- release title: PMDK Version $VERSION,
- description: copy entry from the ChangeLog
Expand Down
10 changes: 5 additions & 5 deletions utils/ansible/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This is utils/ansible/README.md.

The scripts in this directory allow you to set up a RockyLinux and OpenSUSE
environment on a real hardware to be able build a PMDK project on it or use the
node as a self-hosted runner for pmem/pmdk repository.
node as a self-hosted runner for daos-stack/pmdk repository.

# Installing Ansible
To use playbooks it is required to install Ansible first. It must be done
Expand Down Expand Up @@ -89,7 +89,7 @@ ansible-playbook -i $TARGET_IP, configure-pmem.yml \
# Installing a GitHub Action self-hosted runner using Ansible palybook
The sequence of commands below setup a new server, with persistent memory and
a CI environment already installed, to be used as a self-hosted runner in
the pmem/pmdk repository.
the daos-stack/pmdk repository.

```sh
export TARGET_IP= # ip of the target
Expand All @@ -103,7 +103,7 @@ ansible-playbook -i $TARGET_IP, configure-self-hosted-runner.yml --extra-vars \
runner_name=$HOST_NAME labels=$LABELS token=$GHA_TOKEN vars_gha=$VARS_GHA"
```
**Note**: To obtain a token for a new self-hosted runer visit
[Create self-hosted runner](https://gib.com/pmem/pmdk/settings/actions/runners/new)
[Create self-hosted runner](https://github.com/daos-stack/pmdk/settings/actions/runners/new)
.

**Note**: In case of any problems, please refer to
Expand Down Expand Up @@ -154,7 +154,7 @@ GHA runner without a control node.
dnf install git-core -y
dnf install ansible-core -y
ansible-galaxy collection install ansible.posix
git clone https://github.com/pmem/pmdk.git
git clone https://github.com/daos-stack/pmdk.git
cd pmdk/utils/ansible
```
Update playbooks to be used directly on the target as described [above](#provisioning-from-the-target-platform-itself)
Expand Down Expand Up @@ -194,7 +194,7 @@ rm -rf pmdk
# as root:
zypper install git-core -y
zypper install ansible -y
git clone https://github.com/pmem/pmdk.git
git clone https://github.com/daos-stack/pmdk.git
cd pmdk/utils/ansible
```
Update playbooks to be used directly on the target as described [above](#provisioning-from-the-target-platform-itself)
Expand Down
3 changes: 2 additions & 1 deletion utils/ansible/configure-self-hosted-runner.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2023-2024, Intel Corporation
# Copyright 2026, Hewlett Packard Enterprise Development LP

# This playbook is designed to add a new self-hosted runner to pmem/pmdk.
# This playbook is designed to add a new self-hosted runner to daos-stack/pmdk.
# Examples below show how to use this file:
# 1) remotely
# export TARGET_IP= # ip of the target
Expand Down
3 changes: 2 additions & 1 deletion utils/build-dpkg.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2014-2024, Intel Corporation
# Copyright 2026, Hewlett Packard Enterprise Development LP

#
# build-dpkg.sh - Script for building deb packages
Expand Down Expand Up @@ -292,7 +293,7 @@ Section: libs
Priority: optional
Standards-version: 4.1.4
Build-Depends: debhelper (>= 9)
Homepage: https://github.com/pmem/pmdk
Homepage: https://github.com/daos-stack/pmdk
Package: libpmem
Architecture: any
Expand Down
3 changes: 2 additions & 1 deletion utils/docker/build-local.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2017-2023, Intel Corporation
# Copyright 2026, Hewlett Packard Enterprise Development LP

#
# build-local.sh - runs a Docker container from a Docker image with environment
Expand Down Expand Up @@ -34,7 +35,7 @@ export PMDK_CXX=${PMDK_CXX:-g++}
export EXPERIMENTAL=${EXPERIMENTAL:-n}
export VALGRIND=${VALGRIND:-1}
export DOCKER_REPO=${DOCKER_REPO:-ghcr.io/pmem/pmdk}
export GITHUB_REPO=${GITHUB_REPO:-pmem/pmdk}
export GITHUB_REPO=${GITHUB_REPO:-daos-stack/pmdk}

if [[ -z "$IMG_VER" ]]; then
# set the IMG_VER variable - version of Docker images
Expand Down
3 changes: 2 additions & 1 deletion utils/gha-runners/run-ras-linux.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2022-2023, Intel Corporation
# Copyright 2026, Hewlett Packard Enterprise Development LP

# Ansible playbook which is executing PMDK RAS test: Unsafe Shutdown Local on Linux.

Expand Down Expand Up @@ -87,7 +88,7 @@

repo:
pmdk:
url: https://github.com/pmem/pmdk.git
url: https://github.com/daos-stack/pmdk.git
branch: master
target_dir: "{{ working_dir_path }}/pmdk"
pmdk_tests:
Expand Down
2 changes: 1 addition & 1 deletion utils/libpmem.pc.in
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ includedir=${prefix}/include
Name: libpmem
Description: libpmem library from PMDK project
Version: ${version}
URL: https://github.com/pmem/pmdk
URL: https://github.com/daos-stack/pmdk
Requires:
Libs: -L${libdir} -lpmem
Cflags: -I${includedir}
Loading
Loading