Skip to content

Feature/debian packaging - #4

Open
prudhomm wants to merge 18 commits into
vincentchabannes:masterfrom
feelpp:feature/debian-packaging
Open

Feature/debian packaging#4
prudhomm wants to merge 18 commits into
vincentchabannes:masterfrom
feelpp:feature/debian-packaging

Conversation

@prudhomm

Copy link
Copy Markdown
Contributor

add debian package and publish it

- Add debian/control with libnapp-dev package definition
- Add debian/changelog for version 0.3-1feelpp1
- Add debian/rules for building header-only library
- Add debian/copyright with MIT license information
- Add debian/libnapp-dev.install for file installation
- Add helper scripts for building and publishing
- Add comprehensive README for packaging process

The package is header-only and includes:
- C++ header files in /usr/include/napp/
- CMake configuration files
- Full documentation

Package can be built with: ./debian/build-deb.sh
Package can be published with: ./debian/publish-napp.sh
Catch2 is only needed for running tests, which are disabled during
package build. Removing it as a build dependency since it's not
required for the header-only library packaging.
Change from per-package components to layer-based components:
- base: Core dependencies (napp, mmg, parmmg)
- feelpp: Feel++ packages
- applications: Feel++ applications

This provides better organization and simpler APT sources for users.
All core dependencies are now in a single 'base' component.
- Uses feelpp/apt reusable workflow for simplified CI/CD
- Builds Debian packages on all platforms (ubuntu-22.04, 24.04, windows)
- Publishes to APT repository based on trigger:
  * release → stable channel
  * push to master → testing channel
  * pull_request → pr channel
- Component: base
- Distribution: noble
- Includes commented-out GPG signing configuration for future use
- Add continue-on-error: true for Windows matrix entry
- Windows tests currently fail (unit-function, unit-lib)
- This allows Debian packaging to proceed even with Windows test failures
- All Linux tests still required to pass
- Build for Ubuntu 24.04 (noble) and Debian 13 (trixie)
- Build for amd64 and arm64 architectures
- Uses pbuilder-dist for clean chroot builds
- 2 distros × 2 archs = 4 parallel build jobs
- Cached pbuilder environments per distro+arch combination
Native packages cannot have revisions in their version numbers.
Since napp version is 0.3-1feelpp1 (with revision -1feelpp1),
we need to use 3.0 (quilt) format instead of 3.0 (native).

This fixes the dpkg-source build error on Debian trixie.
Revert to 3.0 (native) format since napp is maintained as part of Feel++
with no separate upstream releases. Changed version from 0.3-1feelpp1
to 0.3+feelpp1 (native format doesn't allow revisions with dash).

Why native vs quilt:
- Native (3.0 native): For Debian-only packages, version: X.Y+tag
- Quilt (3.0 quilt): For upstream packages, version: X.Y-revision, needs orig.tar

The issue was that Ubuntu Noble's dpkg is more lenient about version
format violations, while Debian Trixie strictly enforces the rules.
Add apt-repo-token secret to workflow to enable publishing to feelpp/apt.
The github.token only has permissions for the napp repository, so we need
a PAT with 'repo' scope for feelpp/apt.

Setup instructions:
1. Create PAT at: https://github.com/settings/tokens/new
   - Scopes: Check 'repo' (Full control of private repositories)
   - Expiration: Choose appropriate duration
2. Add secret at: https://github.com/feelpp/napp/settings/secrets/actions
   - Name: FEELPP_APT_TOKEN
   - Value: <paste the PAT>

This fixes the permission denied error:
  remote: Permission to feelpp/apt.git denied to github-actions[bot].

Also properly documents GPG signing secrets (optional).
…nd testing

feat(cmake): Add Windows-specific compiler options for better template handling
fix(na.hpp): Change identifier declaration to inline for better cross-platform compatibility
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant