Skip to content

Releases: oehrlis/odb_autoupgrade

Release v0.6.1

Choose a tag to compare

@github-actions github-actions released this 14 Oct 13:27
4c857e4

OraDBA Autoupgrade Extension v0.6.1

Release Date: 2026-10-14

Overview

Version 0.6.1 is a bug-fix release on top of 0.6.0. It fixes three issues found by the molecule scenario of
oradba.automation, two findings from the CPU patch tests, and replaces the installation guide stub. Config files,
profiles and the precedence chain are unchanged; an update from 0.6.0 needs no migration.

Fixes

  • au_gen_config.sh --groups-standard renders the six patch1.home_settings.os*_group lines again: unset
    AU_GROUP_* default to the preinstall names, set values are kept (#7)
  • au_run.sh --dry-run prints the rendered config on stdout (secret values masked) and the java command line on
    stderr, so au_run.sh --dry-run ... > rendered.cfg shows exactly what AutoUpgrade would read (#6)
  • gettext (envsubst) and expect are listed as prerequisites; minimal oraclelinux:9 images lack
    gettext (#5)
  • Profiles with JDK, OCW or GI no longer trigger unknown keyword warnings
  • The release tarball ships the documentation (doc/) and the jar/ and patches/ READMEs; up to 0.6.0 it
    contained no documentation
  • au_patch_pin.sh --resolve-mrp warns when patches_info.json has no MRP entry instead of keeping MRP
    silently

Changed

  • cputest-example profile: AU_PATCH=RU:19.32,OPATCH,OJVM:19.32,DPBP,JDK,MRP, AU_GOLD_IMAGE=YES, MOS patch
    number as header record. A copy of the old example with the 99999999 placeholder is no longer valid as a
    template
  • au_check_connectivity.sh also checks edelivery.oracle.com; allow it on the proxy before running the check

Documentation

  • Installation - OraDBA online and offline install, update, standalone, and the
    "No releases found" troubleshooting
  • Network Endpoints - host table for network teams with public sources and a change
    request template

Install

oradba_extension.sh add oehrlis/odb_autoupgrade@v0.6.1

Offline: download odb_autoupgrade-0.6.1.tar.gz and .sha256, run sha256sum -c, then
oradba_extension.sh add "$PWD/odb_autoupgrade-0.6.1.tar.gz". See CHANGELOG for the full list.

Release v0.6.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 03:47
8a7aede

OraDBA Autoupgrade Extension v0.6.0

Release Date: 2026-10-10

Overview

Version 0.6.0 is the Phase 2 consolidation release. It adds patch profiles, a unified config template
for all three AutoUpgrade modes, edition and OS group control, keystore lifecycle management, JAR update
with version comparison, safe log cleanup, gold image tooling, home generation and verification, and a
complete library refactor shared by all scripts.

Highlights

  • Patch profiles (--profile) give a named, reproducible patch set to download, create_home and deploy
  • One au_patch.cfg template replaces the three mode-specific templates from 0.5.0
  • au_keystore.sh --check / --resave / --backup complete the keystore lifecycle
  • au_update_jar.sh version compare, downgrade guard, SHA-256 fleet pinning and keystore staleness warning
  • au_log_cleanup.sh with a tested keep-set preserving OUA cache, checksum store and run locks
  • au_goldimage.sh for self-built gold images and manual install on RHEL/OL 9
  • au_gen_config.sh and au_home_verify.sh for config generation and home comparison
  • au_patch_pin.sh and au_patch_verify.sh for post-download pinning and integrity checking
  • Full library refactor: lib/common.sh, lib/au_env.sh, lib/au_net.sh, lib/au_tools.sh

Details

Added

  • bin/au_patch_pin.sh - write AU_PATCH pin file from patches_info.json after download; --resolve-mrp
    writes the MRP ARU patch ID for CPU-test reproducibility
  • bin/au_patch_verify.sh - verify a download folder against patches_info.json (size and SHA-256)
  • bin/au_gen_config.sh - render a per-host create_home / deploy config from au_patch.cfg; derives groups
    from a source home or uses AU_GROUP_* defaults
  • bin/au_home_verify.sh - compare an Oracle Home against patches_info.json, source home binary options
    and OS groups
  • bin/au_goldimage.sh - self-built gold image: create with runInstaller -createGoldImage, verify
    checksum, manual install fallback; prints the root.sh command without running it
  • bin/au_log_cleanup.sh - safe cleanup with an explicit keep-set (OUA cache, checksum store, lock, build
    file, N newest job directories); default is list-only; --delete --yes for non-interactive cleanup
  • lib/common.sh - port of the odb_datasafe generic library (logging, error trap, parse_common_opts,
    load_config with SEC-005 checks)
  • lib/au_env.sh - configuration precedence, file security checks, rendering, pin file parsing
  • lib/au_net.sh - Java resolution, proxy, truststore, au_curl wrapper
  • lib/au_tools.sh - JAR manifest, keystore helpers, patches_info.json parsing, log scan
  • etc/au_patch.cfg - unified template for download, create_home and deploy; empty lines dropped and named
  • etc/au_keystore.cfg - minimal console config for au_keystore.sh (replaces etc/test.cfg)
  • etc/profiles/recommended.profile, etc/profiles/19.32.profile, etc/profiles/cputest-example.profile,
    etc/profiles/21c-cspu.profile - shipped patch profiles
  • etc/groups/os-fixed-gid.env - example site group profile using os* group names with fixed GIDs
  • --profile <name|path> option for au_run.sh; --no-pin to skip post-download pinning
  • AU_EDITION, AU_GROUP_*, AU_ORACLE_BASE, AU_INVENTORY_LOCATION, AU_INVENTORY_GROUP variables
  • AU_JAR, AU_KEYSTORE_BACKUP, AU_PROFILE_DIR variables
  • au_keystore.sh --check, --resave, --backup operations
  • au_update_jar.sh version compare, downgrade guard (--force), SHA-256 check (--sha256),
    keystore staleness warning after JAR update

Changed

  • lib/au_lib.sh is now a loader that sources common.sh and the au_* modules in order
  • Caller environment wins over all files and profiles (level 2 beats 2a-7); one snapshot for all files
  • Profile precedence at level 2a; pin file wins over profile for AU_PATCH (level 6 beats 2a)
  • global.keystore is rendered only for -mode download; create_home and deploy configs carry no keystore entry
  • AU_EDITION defaults to EE when no source home is provided (AutoUpgrade requires an explicit edition)
  • All six preinstall OS groups are rendered by default when no source home is provided
  • Per-profile download folder: patches/<profile-name> when --profile is used
  • au_run.sh calls au_patch_pin.sh automatically after a successful download
  • au_run.sh prints VDGI_* / GOLD_IMAGE lines from autoupgrade_patching.log after every download
  • Deprecation WARN on use of au_download.cfg, au_create_home.cfg, au_deploy.cfg (removed in 1.0)
  • bash 4.2 or later required

Removed

  • etc/download_RU19.*.cfg (14 files) - replaced by profiles
  • etc/download_patch.cfg, etc/download_test.cfg - replaced by au_patch.cfg + AU_PATCH
  • etc/sample_config.cfg, etc/sample_setting.cfg - regenerate with AutoUpgrade -patch -create_sample_file
  • etc/test.cfg - replaced by etc/au_keystore.cfg
  • bin/extension_tool.sh - extension-template example with no function
  • bin/template.sh - old template (replaced by the OraDBA-standard template)

Security

  • Env files are refused when the containing directory is group- or world-writable (applies to levels 3-5)
  • Owner check accepts the current user or root (numeric UID); symlinks are resolved and the target is checked
  • Profile files parsed with an allow-list; unknown keys are fatal
  • Pin file and profile files are parsed, never sourced

Upgrade Notes

See doc/upgrade-0.6.0.md for the complete migration guide, including:

  • Replacing mode-specific templates with au_patch.cfg
  • Applying chmod go-w on etc/ and site config directories (new security check)
  • Adopting --profile for named patch sets
  • New variables and defaults for edition and OS groups

See Also

Release v0.5.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 18:25
51da9b1

OraDBA Autoupgrade Extension v0.5.0

Release Date: 2026-10-08

Overview

Version 0.5.0 adds comprehensive proxy and truststore handling for corporate environments, complete configuration
examples for all three AutoUpgrade modes, and a helper script for network pre-flight checks.

Highlights

  • Full proxy support with environment variable precedence and credential stripping
  • Truststore resolution from OS or explicit path
  • Three complete configuration examples: download, create_home, goldimage
  • Shared patch configuration via environment variable
  • Pre-flight connectivity validation
  • Documentation and BATS test suite

Details

Added

  • Wrapper and Library

    • bin/au_run.sh - Wrapper with proxy/Java/truststore resolution
    • lib/au_lib.sh - Utility functions for environment handling
  • Configuration

    • etc/autoupgrade.env.example - All environment variables documented
    • etc/au_download.cfg - download patches, optionally a gold image (AU_GOLD_IMAGE=YES)
    • etc/au_create_home.cfg - create a new home from the staged folder, no keystore
    • etc/au_deploy.cfg - out-of-place patching of one database
    • One patch list AU_PATCH for all modes (default RECOMMENDED, pin in patches/au_patch.env)
  • Helper Scripts

    • bin/au_check_connectivity.sh - Network endpoint validation
  • Documentation

    • doc/proxy-and-truststore.md - covering:
      • Proxy configuration and JVM properties
      • Truststore resolution and CA certificate setup
      • MOS keystore creation and auto-login modes
      • Gold image AUTO fall-back logic
      • Runtime data preservation
      • Network endpoint reference
  • Testing

    • tests/au_run.bats, tests/au_check_connectivity.bats - BATS tests (wrapper, library, connectivity check)

Changed

  • Environment precedence: caller environment wins over config file
  • Lowercase https_proxy export for Java compatibility
  • Java version check now configurable

Fixed

  • Exit code handling under set -euo pipefail
  • Config file validation (abort when not found)

Upgrade Notes

Behaviour changes to check when replacing an existing installation in place:

  • Scripts are renamed (au_run.sh, au_update_jar.sh, au_keystore.sh); the old names still work as
    deprecation shims. Copy bin/ and lib/au_lib.sh together. keystore/, patches/ and logs/ stay
    untouched.
  • Java resolution prefers $ORACLE_HOME/jdk/bin/java over java in PATH; set AUTOUPGRADE_JAVA_HOME
    to pin a JDK.
  • A config that references an unset variable now aborts with the variable names instead of running with
    empty values.
  • The OS truststore is used automatically when present; AUTOUPGRADE_TRUSTSTORE=none restores the JDK
    cacerts.

See Also

Release v0.4.0

Choose a tag to compare

@github-actions github-actions released this 17 Feb 06:20

OraDBA Autoupgrade Extension v0.4.0

Release Date: 2026-02-17

Overview

Version 0.4.0 introduces optional OraDBA etc hook support scaffolding for
environment and aliases, with safe defaults that keep the hooks disabled.

Highlights

  • Added .extension flags:
    • load_env: false
    • load_aliases: false
  • Added hook files:
    • etc/env.sh
    • etc/aliases.sh
  • Added documentation for enabling and using extension etc hooks.

Details

Added

  • Extension metadata
    • .extension now declares load_env and load_aliases explicitly.
    • Both are intentionally set to false by default.
  • etc/env.sh
    • Optional environment hook for extension-local exports and PATH adjustments.
    • Designed to be idempotent when sourced multiple times.
  • etc/aliases.sh
    • Optional alias hook for convenience commands.
    • Loaded only when alias hook loading is enabled.

How to Enable

To activate hooks for this extension, set both conditions:

  1. Global OraDBA switch:
export ORADBA_EXTENSIONS_SOURCE_ETC=true
  1. Extension metadata flags in .extension:
load_env: true
load_aliases: true

Breaking Changes

None.

See Also

Release v0.3.1

Choose a tag to compare

@github-actions github-actions released this 13 Jan 10:57

Release v0.3.1 - Enhanced Release Workflow

Release Date: 2026-01-13
Version: 0.3.1
Status: ✅ Released

🎯 Overview

This release enhances the GitHub Actions release workflow to use detailed version-specific release notes when available, improving the release documentation and user experience for odb_autoupgrade installations and upgrades.

🚀 Major Changes

Enhanced Release Workflow

The GitHub Actions release workflow now intelligently uses detailed release notes:

Smart Release Notes Generation:

  • ✅ Checks for version-specific release notes in doc/release_notes/v{VERSION}.md
  • ✅ Uses detailed markdown file if available (like this document!)
  • ✅ Falls back to comprehensive generic notes with proper branding if not found
  • ✅ Includes relevant documentation links for autoupgrade operations
  • ✅ Provides clear installation and usage instructions

Workflow Implementation:

- name: Generate release notes
  run: |
    VERSION="${{ steps.version.outputs.version }}"
    RELEASE_NOTES_FILE="doc/release_notes/v${VERSION}.md"
    
    # Check if detailed release notes exist
    if [ -f "$RELEASE_NOTES_FILE" ]; then
      echo "Using detailed release notes from $RELEASE_NOTES_FILE"
      cp "$RELEASE_NOTES_FILE" release_notes.md
    else
      # Generate generic notes with proper branding
      ...
    fi

Benefits:

  • 📝 Professional, comprehensive release notes
  • 🎯 Consistent release documentation
  • 🔗 Better user guidance with autoupgrade-specific links
  • 🚀 Automated process for maintainers

Release Notes Added

Created comprehensive release note for v0.3.1:

  • ✅ v0.3.1 - This release (Enhanced Release Workflow)
  • ✅ Existing v0.3.0 - Development Workflow Enhancement

📋 Technical Details

Release Workflow Changes

Before (Generic Notes):

cat > release_notes.md <<EOF
# OraDBA Extension Template v${VERSION}
Extension template tarball for OraDBA.
...
EOF

After (Smart Detection):

if [ -f "doc/release_notes/v${VERSION}.md" ]; then
  cp "doc/release_notes/v${VERSION}.md" release_notes.md
else
  # Generate comprehensive generic notes with:
  # - Project name: odb_autoupgrade
  # - Description: Oracle Database AutoUpgrade automation scripts
  # - Installation instructions
  # - Documentation links
  # - Usage examples for autoupgrade operations
  # - What's Changed section
fi

Generic Fallback Template

The improved fallback template includes:

Project-Specific Content:

  • ✅ Correct project name: odb_autoupgrade
  • ✅ Clear description: Oracle Database AutoUpgrade automation
  • ✅ Installation commands
  • ✅ Links to autoupgrade documentation
  • ✅ Configuration and reference guides
  • ✅ What's Changed reference to CHANGELOG

Example Generated Notes:

# odb_autoupgrade v0.3.1

Oracle Database AutoUpgrade automation scripts.

## What's Changed
See CHANGELOG.md for details.

## Assets
- odb_autoupgrade-0.3.1.tar.gz
- odb_autoupgrade-0.3.1.tar.gz.sha256

## Installation
tar xzf odb_autoupgrade-0.3.1.tar.gz
cd odb_autoupgrade
make install

## Documentation
- Installation Guide
- Configuration
- Reference
- Development

🔧 Usage Examples

Creating a Release

With Detailed Release Notes:

# 1. Create release notes file
cat > doc/release_notes/v0.4.0.md <<EOF
# Release v0.4.0 - New Features
...
EOF

# 2. Update VERSION and CHANGELOG
echo "0.4.0" > VERSION
# Update CHANGELOG.md

# 3. Commit and tag
git add VERSION CHANGELOG.md doc/release_notes/v0.4.0.md
git commit -m "chore: Release v0.4.0"
git tag -a v0.4.0 -m "Release v0.4.0"
git push origin main --tags

# 4. GitHub Actions automatically uses your detailed release notes!

Without Detailed Release Notes:

# Simply tag the release
git tag -a v0.4.0 -m "Release v0.4.0"
git push origin v0.4.0

# Workflow generates comprehensive odb_autoupgrade-branded notes

Using odb_autoupgrade

Installation:

# Download and extract
curl -LO https://github.com/oehrlis/odb_autoupgrade/releases/download/v0.3.1/odb_autoupgrade-0.3.1.tar.gz
tar xzf odb_autoupgrade-0.3.1.tar.gz
cd odb_autoupgrade

# Install
make install

Running AutoUpgrade:

# Basic upgrade
run_autoupgrade.sh --sid ORCL --target 19.25

# With custom config
run_autoupgrade.sh --sid ORCL --target 19.25 --config my_upgrade.cfg

# Update AutoUpgrade jar
update_autoupgrade.sh --target 19.25

🔄 Migration Notes

For Users

No Breaking Changes:

  • Existing installations continue to work
  • No configuration changes required
  • All scripts and tools unchanged
  • Only documentation and release process improved

For Maintainers

Recommended Updates:

  1. Create release notes for future versions
  2. Review and customize generic fallback template
  3. Test workflow in development environment
  4. Keep release notes consistent with CHANGELOG

📦 Installation

Upgrade from 0.3.0

cd odb_autoupgrade
git pull origin main
make install

Fresh Installation

# From GitHub release
curl -LO https://github.com/oehrlis/odb_autoupgrade/releases/download/v0.3.1/odb_autoupgrade-0.3.1.tar.gz
tar xzf odb_autoupgrade-0.3.1.tar.gz
cd odb_autoupgrade
make install

# From source
git clone https://github.com/oehrlis/odb_autoupgrade.git
cd odb_autoupgrade
make install

🧪 Testing

Pre-Release Testing

# Run linting
make lint
# ✓ Shellcheck passed
# ✓ Markdownlint passed

# Run tests
make test
# ✓ All tests passed

# Full CI validation
make ci
# ✓ CI checks passed

Workflow Testing

Manual Workflow Dispatch:

# Via GitHub UI
1. Go to Actions → Release
2. Click "Run workflow"
3. Enter version: 0.3.1
4. Workflow uses detailed release notes automatically

Tag-Based Release:

git tag -a v0.3.1 -m "Release v0.3.1"
git push origin v0.3.1
# Workflow triggers automatically

📚 Documentation

Release Notes Format

Each release note should include:

Required Sections:

  • Overview
  • Major Changes
  • Technical Details
  • Usage Examples
  • Migration Notes
  • Installation Instructions
  • Testing Information

Optional Sections:

  • Known Issues
  • What's Next
  • Contributors
  • Best Practices

Documentation Links

🐛 Known Issues

None. All changes are backward compatible and thoroughly tested.

🔮 What's Next

Version 0.4.0 (Planned)

  • Enhanced AutoUpgrade jar management
  • Additional automation features
  • More comprehensive examples
  • Performance improvements

Future Enhancements

  • Automated release note generation from commits
  • Multi-database upgrade orchestration
  • Enhanced logging and monitoring
  • Additional RU/RUR configurations

💡 Best Practices

AutoUpgrade Operations

Do:

  • ✅ Test upgrades in non-production first
  • ✅ Keep AutoUpgrade jar updated
  • ✅ Review logs after upgrades
  • ✅ Backup databases before upgrade
  • ✅ Follow Oracle's AutoUpgrade best practices

Don't:

  • ❌ Skip pre-upgrade checks
  • ❌ Upgrade production without testing
  • ❌ Ignore warning messages
  • ❌ Use outdated AutoUpgrade jars
  • ❌ Skip post-upgrade validation

Release Management

Do:

  • ✅ Create detailed release notes for all releases
  • ✅ Follow semantic versioning
  • ✅ Test thoroughly before tagging
  • ✅ Update VERSION and CHANGELOG
  • ✅ Include migration guidance

Don't:

  • ❌ Skip release notes for "minor" releases
  • ❌ Forget to update documentation
  • ❌ Tag without testing
  • ❌ Break backward compatibility without notice
  • ❌ Release without changelog entry

👥 Contributors

  • Stefan Oehrli (@oehrlis) - Project maintainer

📝 Full Changelog

See CHANGELOG.md for complete details.

🔗 Resources

🎓 Key Features

odb_autoupgrade Tools

Main Scripts:

  • run_autoupgrade.sh - Execute AutoUpgrade operations
  • update_autoupgrade.sh - Update AutoUpgrade jar files
  • create_mos_keystore.sh - Create keystore for MOS downloads
  • extension_tool.sh - Extension management utilities

Configuration Files:

  • etc/download_patch.cfg - Patch download configuration
  • etc/download_RU19.*.cfg - Release Update configurations for 19c
  • Pre-configured for RU 19.20 through 19.28

Documentation:

  • Complete installation guide
  • Configuration reference
  • API documentation
  • Development guidelines

Use Cases

  1. Automated Database Upgrades

    • Single database upgrades
    • Batch upgrade operations
    • Scheduled upgrade automation
    • Post-upgrade validation
  2. AutoUpgrade Jar Management

    • Download latest versions
    • Version tracking
    • Automated updates
    • MOS integration
  3. Configuration Management

    • Template configurations
    • Environment-specific settings
    • Credential management
    • Logging configuration

Previous Release: v0.3.0
Next Release: TBD

Release v0.3.0

Choose a tag to compare

@github-actions github-actions released this 12 Jan 15:38

Release v0.3.0 - Development Workflow Enhancement

Release Date: 2026-01-12
Type: Minor Release (Features & Improvements)

Overview

Major development workflow enhancement release that synchronizes odb_autoupgrade
with the oradba_extension template v0.3.0. This release introduces a comprehensive
Makefile with color-coded output, extensive help system, and improved CI/CD
integration. The release focuses on enhancing developer experience and workflow
automation.

Major Changes

Comprehensive Makefile Enhancement

The Makefile has been completely redesigned with:

Color-coded output for better readability:

  • Green: Success messages
  • Blue: Action notifications
  • Red: Error messages
  • Yellow: Warnings and hints

Extensive help system with categorized targets:

  • Development: test, lint, format, check
  • Build & Distribution: build, clean, clean-all
  • Version & Git: version-bump-*, tag, status
  • CI/CD & Tools: ci, pre-commit, tools, info
  • Quick Shortcuts: t, l, f, b, c

Example help output:

$ make help
OraDBA AutoUpgrade Development Makefile
Version: 0.3.0

Usage:
  make <target>

Development:
  test                   Run BATS tests
  lint                   Run all linters
  format                 Format all code
  ...

New Development Targets

Added comprehensive development workflow targets:

format - Code formatting with shfmt:

make format              # Format all shell scripts
make format-check        # Check formatting without changes

check - Combined format check and lint:

make check              # Verify code quality

ci - Full CI pipeline locally:

make ci                 # clean → lint → test → build

pre-commit - Pre-commit checks:

make pre-commit         # format → lint → test

Version Management Targets

Automated version bumping with validation:

make version-bump-patch  # 0.2.0 → 0.2.1
make version-bump-minor  # 0.2.0 → 0.3.0
make version-bump-major  # 0.2.0 → 1.0.0
make tag                 # Create git tag from VERSION

Development Tools Support

tools - Display status of all development tools:

$ make tools
Development Tools Status

Tool                 Status
----                 ------
shellcheck          ✓ installed
shfmt               ✓ installed
markdownlint        ✓ installed
bats                ✓ installed
git                 ✓ installed

info - Show comprehensive project information:

$ make info
OraDBA AutoUpgrade Extension Information

Extension:   odb_autoupgrade
Version:     0.3.0
Dist dir:    dist

Directories:
  bin:         4 files
  etc:         15 files
  doc:         5 files
  ...

status - Display git status and current version:

$ make status
Project Status
Extension: odb_autoupgrade
Version: 0.3.0

## master

Quick Shortcuts

Added convenient single-letter shortcuts:

make t              # Shortcut for test
make l              # Shortcut for lint
make f              # Shortcut for format
make b              # Shortcut for build
make c              # Shortcut for clean

CI/CD Improvements

Updated GitHub Actions workflows to use Makefile targets:

CI workflow (.github/workflows/ci.yml):

  • Uses make lint-shell and make lint-markdown for consistency
  • Centralized linting logic in Makefile

Release workflow (.github/workflows/release.yml):

  • Simplified to use make ci for all checks and build
  • Single source of truth for CI/CD logic
  • Better maintainability

Benefits:

  • Run CI pipeline locally: make ci
  • Identical behavior in CI and local development
  • Easier to debug CI failures

Documentation Enhancements

README.md improvements:

  • Enhanced Integrity Checking section with more details
  • Added "Common use cases" description for .checksumignore patterns
  • Clarified OraDBA integrity verification process
  • Better formatting consistency throughout documentation

Example additions:

## Integrity Checking

The extension includes checksum verification:
- Files checksums stored in .extension
- Excludes: credentials, caches, temporary files
- Customizable via .checksumignore

New Features

make clean-all

Deep clean including caches and temporary files:

make clean-all       # Remove dist/, test artifacts, caches

Cleans:

  • dist/ directory
  • Test artifacts
  • Build caches
  • Temporary files

Improved Error Messages

Better error messages with installation guidance:

$ make lint
Error: shellcheck not found. Install with: brew install shellcheck

Tool-specific installation instructions for macOS and Linux.

Consistent Formatting

All Makefile targets now follow consistent formatting:

  • Indentation standardized
  • Color-coded output
  • Clear success/failure indicators
  • Comprehensive error handling

Technical Details

Makefile Structure

# Color output definitions
COLOR_RESET  := \033[0m
COLOR_GREEN  := \033[32m
COLOR_YELLOW := \033[33m
COLOR_BLUE   := \033[34m
COLOR_RED    := \033[31m

# Tool detection
SHELLCHECK   := $(shell command -v shellcheck 2>/dev/null)
SHFMT        := $(shell command -v shfmt 2>/dev/null)
MARKDOWNLINT := $(shell command -v markdownlint 2>/dev/null)
BATS         := $(shell command -v bats 2>/dev/null)
GIT          := $(shell command -v git 2>/dev/null)

Version Detection

Automatic version detection from VERSION file:

VERSION := $(shell cat VERSION 2>/dev/null || echo "0.0.0")

Extension Name Detection

Automatic extension name from .extension file:

EXTENSION_NAME := $(shell grep '^name:' .extension 2>/dev/null | \
                     awk '{print $2}' || echo "odb_autoupgrade")

Compatibility

  • Minimum Requirements:

    • Bash 4.0+
    • GNU Make 3.81+
    • Git 2.0+
  • Development Tools:

    • shellcheck (optional, for linting)
    • shfmt (optional, for formatting)
    • markdownlint (optional, for doc linting)
    • bats-core (optional, for testing)
  • Operating Systems:

    • macOS 10.15+
    • Linux (various distributions)
    • Compatible with CI environments

Migration Guide

From v0.2.0 to v0.3.0

No breaking changes - all existing functionality preserved.

New capabilities available:

  1. Format your code:

    make format
  2. Run pre-commit checks:

    make pre-commit
  3. Check tool status:

    make tools
  4. Use quick shortcuts:

    make t l f b c

Dependencies

No new runtime dependencies. All development tools are optional and detected
automatically:

# macOS
brew install shellcheck shfmt bats-core markdownlint-cli

# Linux (Ubuntu/Debian)
apt-get install shellcheck shfmt bats
npm install -g markdownlint-cli

Known Issues

None identified in this release.

Future Enhancements

Planned for upcoming releases:

  • Integration tests for AutoUpgrade scenarios
  • Docker-based testing environment
  • Enhanced Oracle patch management
  • Automated compatibility testing

Contributors

Related Resources

Support

For issues, questions, or contributions:


Previous Release: v0.2.0
Full Changelog: https://github.com/oehrlis/odb_autoupgrade/blob/main/CHANGELOG.md