Skip to content

Restructure repository layout for clarity and maintainability #144

@oehrlis

Description

@oehrlis

Task Description

Reorganise the repository from the legacy layout (local/oudbase, payload-based packaging) to a modern, conventional open-source structure. Establish clear separation between source, packaging, CI, docs, and examples. Eliminate the 'oudbase' directory inside the repo; instead, align packaging to install files under /u00/app/oracle/local/oudbase without using a matching repo root folder. Ensure developer experience is improved (discoverable scripts, dev/test workflows).

Task Type

Refactoring

Affected Component

Multiple components

Priority

High (Important, should be done soon)

Motivation

The current layout is confusing, mixes dev & payload, and does not follow best practices. A consistent, modern structure makes developing, testing, and packaging easier, facilitates onboarding, and enables robust CI/CD. Dropping the oudbase/ folder from the repo decouples the repo layout from the install path. Eliminates risk of missing files in payload/build steps. Enables artifact-based releases.

Implementation Plan

  1. Create top-level src/, packaging/, tests/, docs/, bin/, examples/ directories
  2. Move all implementation scripts and libraries from local/oudbase into src/
  3. Implement packaging scripts to build a tarball that unpacks to /u00/app/oracle/local/oudbase
  4. Migrate installer to use new artifact instead of in-repo payload
  5. Clean up old install/build scripts, update doc references
  6. Check legacy path compatibility (migrate in-place if needed)

Files to Modify

- local/oudbase/* -> src/
- bin/* (filtered)
- packaging/build.sh (new)
- packaging/installer/oudbase_install.sh (new)
- README.md, docs/*

Code Examples

Testing Approach

  • Add/Update bats unit tests to verify installation layouts
  • Manual deployment test on scratch system
  • 'make build' produces correct artifact
  • Legacy installs are compatible (test upgrade path)

Acceptance Criteria

  • Implementation complete
  • Tests passing
  • Documentation updated
  • Code reviewed

Breaking Changes

Major breaking changes

Dependencies

No response

Risks and Considerations

  • Legacy scripts must be checked for any hardcoded relative paths
  • Automated migration must not break user environments

Estimated Effort

No response

Subtasks

- [ ] Move scripts out of local/oudbase
- [ ] Draft new packaging/build scripts
- [ ] Test artifact-based installer on a test system
- [ ] Remove references to old layout from docs

Documentation Updates Required

  • README.md
  • UPGRADE_FROM_OLD_LAYOUT.md
  • Inline code comments in packaging scripts

Additional Notes

No response

Pre-submission Checklist

  • I have searched existing issues to avoid duplicates
  • I have provided a clear implementation plan
  • I have defined acceptance criteria
  • I have considered backward compatibility

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions