Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
6f45e91
Feature/includeparameter (#14)
ElijahSwiftIBM Oct 17, 2025
cec9421
Unit testing (#17)
varunchennamadhava Nov 5, 2025
55fbda0
Feat/oss housekeeping2 (#18)
lcarcaramo Nov 5, 2025
c87cccf
Fix _C.pyi and removed unused import from cbxp.py.
lcarcaramo Nov 6, 2025
b61fb73
use a published link for DCO description (#10)
cbrooker27 Dec 4, 2025
e8d9372
fixed some spelling and grammar mistakes (#14)
EmmasBox Dec 5, 2025
7e099de
Create separate /bin/cbxp executable and /lib/libcbxp.so library (#16)
lcarcaramo Dec 16, 2025
bf0cdcb
Feat/assb control block (#17)
varunchennamadhava Dec 16, 2025
1ddbd29
CI/CD Infrastructure (#19)
lcarcaramo Dec 17, 2025
4eb4ca9
Feat/filter control blocks (#20)
ElijahSwiftIBM Feb 17, 2026
eb16ecd
squashed commits for OUCB
varunchennamadhava Feb 17, 2026
8d1219e
Merge branch 'dev' into feat/oucb-control-block
varunchennamadhava Feb 24, 2026
e537189
test cases files modified
varunchennamadhava Feb 24, 2026
8f936c7
fixed some comments on PR made by Leonard
varunchennamadhava Feb 24, 2026
e21393b
fixed some comments on PR made by Leonard 1
varunchennamadhava Feb 24, 2026
70a75c8
removed not needed prpgramming interfaces and added python test cases
varunchennamadhava Feb 24, 2026
71de873
make format run
varunchennamadhava Feb 24, 2026
ef21267
PR Review comments on feb 26
varunchennamadhava Feb 26, 2026
4983a3a
issue with test.py testcase
varunchennamadhava Feb 26, 2026
389f246
worked on PR comments
varunchennamadhava Feb 27, 2026
7ce709e
make format ran
varunchennamadhava Feb 27, 2026
74ddeeb
typo fix
varunchennamadhava Mar 3, 2026
b5ffab9
Merge pull request #26 from ambitus/feat/oucb-control-block
ElijahSwiftIBM Mar 3, 2026
0c0d788
remove null check and add empty string translation
ElijahSwiftIBM Mar 9, 2026
3b0718e
add test cases
ElijahSwiftIBM Mar 9, 2026
102da79
remove null fix
ElijahSwiftIBM Mar 9, 2026
7f5db40
fixed python tests
ElijahSwiftIBM Mar 9, 2026
1e0cbe3
fixed extraneous null issue
ElijahSwiftIBM Mar 9, 2026
1b24005
fixed extraneous null issue better
ElijahSwiftIBM Mar 9, 2026
019dc90
git comments and bug fixes
ElijahSwiftIBM Mar 9, 2026
194c215
git comments and bug fixes 2
ElijahSwiftIBM Mar 9, 2026
87362ed
git comments and bug fixes 3
ElijahSwiftIBM Mar 10, 2026
23705c4
remove comment
ElijahSwiftIBM Mar 10, 2026
d7cfee8
Merge pull request #28 from ambitus/feat/null-filter
ElijahSwiftIBM Mar 10, 2026
a04b3a7
Static Library/Cleanup (#29)
lcarcaramo Mar 10, 2026
1439563
OpenXL 2.2/Python3.14 (#33)
lcarcaramo Mar 18, 2026
bb271e7
Fix merge conflicts
lcarcaramo Mar 19, 2026
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
20 changes: 20 additions & 0 deletions .github/workflows/clang-format.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: clang-format
on: [push, pull_request]
jobs:
build:
strategy:
fail-fast: false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install clang-format
run: sudo apt install -y cmake clang-format-19
- name: clang-format
# Create symbolic link to clang-format-19 and
# add it to PATH so that 'clang-format' can
# be used to run 'clang-format-19'.
run: |
ln -s $(which clang-format-19) clang-format
export PATH=$PWD:$PATH
cmake .
make lint
15 changes: 15 additions & 0 deletions .github/workflows/cppcheck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: cppcheck
on: [push, pull_request]
jobs:
build:
strategy:
fail-fast: false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install cppcheck
run: sudo apt-get install -y cmake cppcheck
- name: Run cppcheck
run: |
cmake .
make check
17 changes: 17 additions & 0 deletions .github/workflows/ruff.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: ruff
on: [push, pull_request]
jobs:
build:
strategy:
fail-fast: false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install ruff
run: python3 -m pip install --upgrade pip ruff
- name: Run ruff
run: ruff check
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
# Prerequisites
*.d

# Vscode settings
.vscode/

# Compiled Object files
*.slo
*.lo
Expand Down
4 changes: 4 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,7 @@ repos:
pass_filenames: false
always_run: true
verbose: true
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.14.9
hooks:
- id: ruff-format
22 changes: 22 additions & 0 deletions .vscode/c_cpp_properties.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"configurations": [
{
"name": "Mac",
"includePath": [
"${workspaceFolder}/cbxp",
"${workspaceFolder}/externals",
"/opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12",
"/opt/homebrew/opt/python@3.13/Frameworks/Python.framework/Versions/3.13/include/python3.13"
],
"defines": [
"__ptr32=",
"VERSION=\"test\""
],
"compilerPath": "/usr/bin/clang",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "macos-clang-arm64"
}
],
"version": 4
}
62 changes: 0 additions & 62 deletions .vscode/settings.json

This file was deleted.

100 changes: 77 additions & 23 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,28 +1,47 @@
cmake_minimum_required(VERSION 3.15)

project(CBXP VERSION 0.0.3
DESCRIPTION "A unified and standardized interface for extracting z/OS control block data."
LANGUAGES C CXX)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "./dist")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "./dist")

execute_process(
COMMAND uname
OUTPUT_VARIABLE uname_output
RESULT_VARIABLE uname_result
)

# ============================================================================
# Compiler Info
# ============================================================================
set(CXX_STANDARD 17)

set(
COMPILE_OPTIONS
-O2
-fzos-le-char-mode=ascii
-fstack-protector-strong
-Wno-trigraphs
)

set(LINK_OPTIONS -m64 -Wl,-b,edit=no)

if(uname_output STREQUAL "OS/390\n")
set(CMAKE_CXX_COMPILER "ibm-clang++64")
else()
set(CMAKE_CXX_COMPILER "clang")
endif()

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "./dist")

project(CBXP VERSION 0.0.2
DESCRIPTION "A unified and standardized interface for extracting z/OS control block data."
LANGUAGES C CXX)

# ============================================================================
# Sources
# ============================================================================
file(
GLOB CBXP_SRC
"cbxp/*.cpp"
GLOB CBXP_SRC_LIB
"cbxp/cbxp.cpp"
"cbxp/control_block_explorer.cpp"
"cbxp/logger.cpp"
"cbxp/control_blocks/*.cpp"
)

Expand All @@ -38,50 +57,76 @@ file(
"cbxp/**/*.h"
)

add_executable(cbxp ${CBXP_SRC})
# ============================================================================
# Build '/lib/libcbxp.a'
# ============================================================================
add_library(libcbxp STATIC ${CBXP_SRC_LIB})
set_target_properties(libcbxp PROPERTIES OUTPUT_NAME "cbxp")

target_include_directories(
cbxp PUBLIC
libcbxp PUBLIC
cbxp
cbxp/control_blocks
externals
/usr/include/zos
)

target_compile_options(libcbxp PUBLIC ${COMPILE_OPTIONS})
target_link_options(libcbxp PUBLIC ${LINK_OPTIONS})

# ============================================================================
# Build '/bin/cbxp'
# ============================================================================
add_executable(cbxp "cbxp/main.cpp")

target_link_libraries(cbxp libcbxp)

target_include_directories(cbxp PUBLIC cbxp externals)

target_compile_definitions(
cbxp
PUBLIC
cbxp PUBLIC
VERSION="${CMAKE_PROJECT_VERSION}"
)

target_compile_options(
cbxp PUBLIC
-fzos-le-char-mode=ascii
-Wno-trigraphs
)
target_compile_options(cbxp PUBLIC ${COMPILE_OPTIONS})
target_link_options(cbxp PUBLIC ${LINK_OPTIONS})

# ============================================================================
# Packaging
# ============================================================================
add_custom_target(
package
COMMAND "mkdir"
"-p"
"cbxp-${CMAKE_PROJECT_VERSION}/bin"
"cbxp-${CMAKE_PROJECT_VERSION}/lib"
"cbxp-${CMAKE_PROJECT_VERSION}/include"
COMMAND "cp"
"LICENSE"
"cbxp-${CMAKE_PROJECT_VERSION}/"
COMMAND "cp"
"NOTICES"
"cbxp-${CMAKE_PROJECT_VERSION}/"
COMMAND "cp"
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cbxp"
"./dist/cbxp"
"cbxp-${CMAKE_PROJECT_VERSION}/bin/"
COMMAND "cp"
"./dist/libcbxp.a"
"cbxp-${CMAKE_PROJECT_VERSION}/lib/"
COMMAND "cp"
"./cbxp/cbxp.h"
"cbxp-${CMAKE_PROJECT_VERSION}/include/"
COMMAND "pax"
"-wzf"
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cbxp-${CMAKE_PROJECT_VERSION}.pax.Z"
"-o saveext"
"-x" "pax"
"-wzvf"
"./dist/cbxp-${CMAKE_PROJECT_VERSION}.pax.Z"
"cbxp-${CMAKE_PROJECT_VERSION}/*"
DEPENDS cbxp
DEPENDS libcbxp cbxp
)

# ============================================================================
# Cppcheck
# ============================================================================
add_custom_target(
check
COMMAND "cppcheck"
Expand All @@ -101,6 +146,9 @@ add_custom_target(
"${CMAKE_CURRENT_SOURCE_DIR}/cbxp"
)

# ============================================================================
# Lint
# ============================================================================
add_custom_target(
lint
COMMAND "clang-format"
Expand All @@ -109,15 +157,21 @@ add_custom_target(
${CBXP_SRC_ALL}
)

# ============================================================================
# Format
# ============================================================================
add_custom_target(
format
COMMAND "clang-format"
"-i"
${CBXP_SRC_ALL}
)

# ============================================================================
# Test
# ============================================================================
add_custom_target(
test
COMMAND "./tests/test.sh"
DEPENDS cbxp
DEPENDS libcbxp cbxp
)
Loading
Loading