Skip to content
This repository has been archived by the owner on Mar 22, 2023. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: pmem/pmemkv
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 1.0.2
Choose a base ref
...
head repository: pmem/pmemkv
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Loading
Showing 315 changed files with 33,202 additions and 16,829 deletions.
63 changes: 63 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
name: Bug report
about: Did you find a bug in pmemkv? Please let us know.
labels: "Type: Bug"
---
<!--
Before creating new issue, ensure that similar issue wasn't already created
* Search: https://github.com/pmem/pmemkv/issues
Note that if you do not provide enough information to reproduce the issue, we may not be able to take action on your report.
Remember this is just a minimal template. You can extend it with data you think may be useful.
-->

# ISSUE: <!-- fill the title of issue -->

## Environment Information

| Name | Version |
| :--------------------------- | :-------------------------: |
| pmemkv version(s) | <!--fill--> |
| libpmemobj-cpp version(s) | <!--fill--> |
| PMDK (libpmem/libpmemobj) version(s) | <!--fill--> |
| OS(es) version(s) | <!--fill--> |
| kernel version(s) | <!--fill--> |
| compiler, libraries, packaging and other related tools version(s) | <!--fill--> |

and if applicable:
| Name | Version |
| :-------------------------- | :---------: |
| TBB version(s): | <!--fill--> |
| memkind version(s): | <!--fill--> |
| ndctl version(s): | <!--fill--> |

<!-- fill in also other useful environment data -->

## Please provide a reproduction of the bug:

<!-- fill this out -->

## How often bug is revealed:

(always, often, rare) <!-- pick one if possible -->
<!-- describe special circumstances -->

## Actual behavior:

<!-- fill this out -->

## Expected behavior:

<!-- fill this out -->

## Details

<!-- fill this out -->

## Additional information about Priority and Help Requested:
<!-- Please fill the table below -->
| Question | Answer |
| :------- | :----: |
| Are you willing to submit a pull request with a proposed change? | Yes/No |
| Requested priority | Showstopper/High/Medium/Low |

26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/feature.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
name: Feature
about: Request a feature
labels: "Type: Feature"
---
# FEAT: <!-- fill the title of feature -->

## Rationale

<!-- fill this out -->

## Description

<!-- fill this out -->

## API Changes

<!-- fill this out -->

## Implementation details

<!-- fill this out if possible -->

## Meta

<!-- fill this out -->
15 changes: 15 additions & 0 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
name: Question
about: Do you have question regarding pmemkv? Don't hesitate to ask.
labels: "Type: Question"
---
# QUESTION: <!-- fill the title of question -->

## Details

<!-- fill this out -->

<!--
For questions and other non-bugs, you could use http://groups.google.com/group/pmem
You could also chat with members of the PMDK/pmemkv team real-time on the #pmem IRC channel on OFTC
-->
37 changes: 37 additions & 0 deletions .github/workflows/coverity.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@

name: pmemkv-coverity
# It runs static analysis build - Coverity. It requires special token (set in CI's secret).

# Run this job at 00:00 UTC once a month; but also allow manual trigger.
on:
workflow_dispatch:
schedule:
- cron: '0 0 1 * *'

env:
REPO: pmemkv
GITHUB_REPO: pmem/pmemkv
CONTAINER_REG: ghcr.io/pmem/pmemkv
HOST_WORKDIR: ${{ github.workspace }}
WORKDIR: utils/docker
IMG_VER: latest
COVERITY_SCAN_NOTIFICATION_EMAIL: ${{ secrets.COVERITY_SCAN_NOTIFICATION_EMAIL }}
COVERITY_SCAN_TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}

jobs:
linux:
name: Linux-coverity
runs-on: ubuntu-latest
strategy:
matrix:
CONFIG: ["TYPE=coverity OS=ubuntu OS_VER=20.04"]
steps:
- name: Clone the git repo
uses: actions/checkout@v2

# coverity workflow should just reuse (pull) the most recent, available image
- name: Pull the image
run: cd $WORKDIR && ${{ matrix.CONFIG }} ./pull-or-rebuild-image.sh pull

- name: Run the build
run: cd $WORKDIR && ${{ matrix.CONFIG }} ./build.sh
109 changes: 109 additions & 0 deletions .github/workflows/gha.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@

name: pmemkv
# It runs default OSes for each PR, push event or a new tag,
# checks basic builds with various compilers and executes all sets of tests.

on:
push:
pull_request:
release:
types:
- created

env:
REPO: pmemkv
GITHUB_REPO: pmem/pmemkv
CONTAINER_REG: ghcr.io/pmem/pmemkv
HOST_WORKDIR: ${{ github.workspace }}
WORKDIR: utils/docker
TEST_TIMEOUT: 800
IMG_VER: latest

jobs:
linux:
name: pmemkv
runs-on: ubuntu-latest
env:
# use org's Private Access Token to log in to GitHub Container Registry
CONTAINER_REG_USER: ${{ secrets.GH_CR_USER }}
CONTAINER_REG_PASS: ${{ secrets.GH_CR_PAT }}
FORCE_IMAGE_ACTION: ${{ secrets.FORCE_IMAGE_ACTION }}
strategy:
matrix:
CONFIG: ["TYPE=debug OS=fedora OS_VER=35",
"TYPE=debug OS=ubuntu OS_VER=21.10",
"TYPE=debug OS=ubuntu OS_VER=20.04 CHECK_CPP_STYLE=1 COVERAGE=1",
"TYPE=release OS=fedora OS_VER=35",
"TYPE=release OS=ubuntu OS_VER=20.04 PUSH_IMAGE=1",
"TYPE=valgrind OS=ubuntu OS_VER=20.04",
"TYPE=memcheck_drd OS=ubuntu OS_VER=20.04",
"TYPE=building OS=fedora OS_VER=35 PUSH_IMAGE=1",
"TYPE=building OS=ubuntu OS_VER=21.10 PUSH_IMAGE=1 COVERAGE=1 ",
"TYPE=compatibility OS=fedora OS_VER=35",
"TYPE=bindings OS=ubuntu OS_VER=20.04_bindings PUSH_IMAGE=1"]
steps:
- name: Get release version
if: github.event_name == 'release'
id: get_release_version
run: echo ::set-output name=VERSION::$(echo ${{ github.event.release.tag_name }} | awk -F '[.-]' '/^[0-9]+.[0-9]+[.0-9]*(-rc[0-9]+)?$/ {print $1 "." $2}')

- name: Set image version and force image action for release
if: github.event_name == 'release' && steps.get_release_version.outputs.VERSION != ''
run: |
echo "IMG_VER=${{ steps.get_release_version.outputs.VERSION }}" >> $GITHUB_ENV
echo "FORCE_IMAGE_ACTION=rebuild" >> $GITHUB_ENV
- name: Set image version and force image action for stable branch
# we want to set IMG_VER to e.g. '1.x' for stable branches and PRs against them
# for PRs we have to use 'base_ref' - this is the target branch (and we have to check that instead)
if:
startsWith(github.ref, 'refs/heads/stable-') || startsWith(github.base_ref, 'stable-')
# we now know we're on (or against) stable branches, so we just need to pick the version (e.g. the mentioned '1.x')
run: |
IMG_VER=$(echo ${GITHUB_BASE_REF} | cut -d - -f 2)
[ -z "${IMG_VER}" ] \
&& echo "IMG_VER=$(echo ${GITHUB_REF#refs/heads/} | cut -d - -f 2)" >> $GITHUB_ENV \
|| echo "IMG_VER=${IMG_VER}" >> $GITHUB_ENV
echo "FORCE_IMAGE_ACTION=rebuild" >> $GITHUB_ENV
- name: Clone the git repo
uses: actions/checkout@v2
with:
fetch-depth: 0

# "pull" or "rebuild" can be passed to a secret FORCE_IMAGE_ACTION to override default action
- name: Pull the image or rebuild and push it
run: cd $WORKDIR && ${{ matrix.CONFIG }} ./pull-or-rebuild-image.sh $FORCE_IMAGE_ACTION

- name: Run the build
run: cd $WORKDIR && ${{ matrix.CONFIG }} ./build.sh

doc:
name: build and publish docs
runs-on: ubuntu-latest
needs: linux
env:
DOC_UPDATE_GITHUB_TOKEN: ${{ secrets.DOC_UPDATE_GITHUB_TOKEN }}
DOC_UPDATE_BOT_NAME: ${{ secrets.DOC_UPDATE_BOT_NAME }}
DOC_REPO_OWNER: ${{ secrets.DOC_REPO_OWNER }}
if:
github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/stable-')
strategy:
matrix:
CONFIG: ["TYPE=doc OS=fedora OS_VER=35"]
steps:
- name: Set image version for stable branch
if: startsWith(github.ref, 'refs/heads/stable-')
run: |
echo "IMG_VER=$(echo ${GITHUB_REF#refs/heads/} | cut -d - -f 2)" >> $GITHUB_ENV
- name: Clone the git repo
uses: actions/checkout@v2
with:
fetch-depth: 0

- name: Pull the image
run: cd $WORKDIR && ${{ matrix.CONFIG }} ./pull-or-rebuild-image.sh pull

- name: Run the build
run: cd $WORKDIR && ${{ matrix.CONFIG }} ./build.sh
57 changes: 57 additions & 0 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@

name: pmemkv-nightly
# It runs non-deafult OSes, listed below with basic set of compilers and tests.

# instead of running it every night, it's now run only on-demand
on:
workflow_dispatch:
inputs:
build_type:
description: 'Build type (as defined in build.sh)'
required: true
default: 'debug'

env:
REPO: pmemkv
GITHUB_REPO: pmem/pmemkv
CONTAINER_REG: ghcr.io/pmem/pmemkv
HOST_WORKDIR: ${{ github.workspace }}
WORKDIR: utils/docker
TEST_TIMEOUT: 900
IMG_VER: latest
TYPE: ${{ github.event.inputs.build_type }}
PUSH_IMAGE: 1
# use org's Private Access Token to log in to GitHub Container Registry
CONTAINER_REG_USER: ${{ secrets.GH_CR_USER }}
CONTAINER_REG_PASS: ${{ secrets.GH_CR_PAT }}

jobs:
linux:
name: Linux-nightly
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
CONFIG: ["OS=almalinux OS_VER=8",
"OS=archlinux-base OS_VER=latest",
"OS=debian OS_VER=testing",
"OS=debian OS_VER=unstable",
"OS=debian OS_VER=latest",
"OS=fedora OS_VER=33",
"OS=fedora OS_VER=34",
"OS=fedora OS_VER=rawhide",
"OS=opensuse-leap OS_VER=latest",
"OS=opensuse-tumbleweed OS_VER=latest",
"OS=ubuntu OS_VER=18.04",
"OS=ubuntu OS_VER=21.04",
"OS=ubuntu OS_VER=devel"]
steps:
- name: Clone the git repo
uses: actions/checkout@v2

# It rebuilds images every time and pushes them to the container registry
- name: Rebuild and push the image
run: cd $WORKDIR && ${{ matrix.CONFIG }} ./pull-or-rebuild-image.sh rebuild

- name: Run the build
run: cd $WORKDIR && ${{ matrix.CONFIG }} ./build.sh
43 changes: 43 additions & 0 deletions .github/workflows/weekly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@

name: pmemkv-weekly
# It runs non-day-to-day checks; "unusual" jobs required to be checked only once in a while.

# instead of running it every week, it's now run only on-demand
on:
workflow_dispatch:

env:
REPO: pmemkv
GITHUB_REPO: pmem/pmemkv
CONTAINER_REG: ghcr.io/pmem/pmemkv
HOST_WORKDIR: ${{ github.workspace }}
WORKDIR: utils/docker
TEST_TIMEOUT: 900
IMG_VER: latest
PUSH_IMAGE: 0

jobs:
linux:
name: Linux-weekly
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
CONFIG: ["TYPE=debug OS=ubuntu OS_VER=devel TESTS_ASAN=1 TESTS_PMREORDER=0",
"TYPE=debug OS=ubuntu OS_VER=devel TESTS_UBSAN=1 TESTS_PMREORDER=0",
"TYPE=debug OS=fedora OS_VER=34 TESTS_ASAN=1 TESTS_PMREORDER=0",
"TYPE=debug OS=fedora OS_VER=34 TESTS_UBSAN=1 TESTS_PMREORDER=0",
"TYPE=valgrind OS=fedora OS_VER=rawhide TESTS_PMREORDER=0",
"TYPE=memcheck_drd OS=fedora OS_VER=rawhide TESTS_PMREORDER=0",
"TYPE=building OS=fedora OS_VER=rawhide",
"TYPE=building OS=ubuntu OS_VER=devel"]
steps:
- name: Clone the git repo
uses: actions/checkout@v2

# It rebuilds images every time (push is not neccessary; they are pushed in other workflows)
- name: Rebuild the image
run: cd $WORKDIR && ${{ matrix.CONFIG }} ./pull-or-rebuild-image.sh rebuild

- name: Run the build
run: cd $WORKDIR && ${{ matrix.CONFIG }} ./build.sh
8 changes: 3 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
.*
!.gitignore
!.gitattributes
!.travis.yml
!.github/
!.clang-format
*.d
/bin/
/build/
cmake-build-debug/
/googletest-*.zip
build/
*~
1 change: 0 additions & 1 deletion .travis.yml

This file was deleted.

Loading