Skip to content

Commit 161cce8

Browse files
committed
Merge branch 'fix/push-all-deb-packages'
2 parents 4bc0677 + b0162ef commit 161cce8

File tree

6 files changed

+109
-23
lines changed

6 files changed

+109
-23
lines changed

.github/workflows/libfranka-build.yml

Lines changed: 50 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ on:
55
tags:
66
- '*'
77
workflow_dispatch:
8+
inputs:
9+
release_tag:
10+
description: 'Tag name for release (leave empty for artifacts only)'
11+
required: false
12+
type: string
813

914
env:
1015
REGISTRY: ghcr.io
@@ -75,8 +80,7 @@ jobs:
7580
echo "Generated packages and checksums:"
7681
ls -lh build/*.deb build/*.sha256
7782
78-
- name: Upload Debian package and checksum (manual runs)
79-
if: github.event_name == 'workflow_dispatch'
83+
- name: Upload Debian package and checksum
8084
uses: actions/upload-artifact@v4
8185
with:
8286
name: libfranka-${{ matrix.ubuntu_version }}
@@ -85,16 +89,54 @@ jobs:
8589
build/*.sha256
8690
retention-days: 30
8791

88-
- name: Upload to GitHub Release
89-
if: startsWith(github.ref, 'refs/tags/') && matrix.ubuntu_version == '20.04'
92+
release:
93+
name: Create GitHub Release
94+
needs: [build-deb]
95+
runs-on: ubuntu-latest
96+
if: startsWith(github.ref, 'refs/tags/') || (github.event_name == 'workflow_dispatch' && github.event.inputs.release_tag != '')
97+
permissions:
98+
contents: write
99+
100+
steps:
101+
- name: Checkout code
102+
uses: actions/checkout@v4
103+
104+
- name: Get release info
105+
id: get_release_info
106+
run: |
107+
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
108+
TAG="${{ github.event.inputs.release_tag }}"
109+
else
110+
TAG=${GITHUB_REF#refs/tags/}
111+
fi
112+
echo "tag=$TAG" >> $GITHUB_OUTPUT
113+
echo "Release tag: $TAG"
114+
shell: bash
115+
116+
- name: Download all artifacts
117+
uses: actions/download-artifact@v4
118+
with:
119+
path: packages/
120+
pattern: libfranka-*
121+
merge-multiple: true
122+
123+
- name: Generate checksums summary
124+
run: |
125+
echo "Packages to upload:"
126+
ls -la packages/
127+
echo ""
128+
echo "Checksums:"
129+
cat packages/*.sha256
130+
131+
- name: Create GitHub Release
90132
uses: softprops/action-gh-release@v2
91133
with:
92-
files: |
93-
build/*.deb
94-
build/*.sha256
95-
generate_release_notes: true
134+
tag_name: ${{ steps.get_release_info.outputs.tag }}
135+
name: libfranka ${{ steps.get_release_info.outputs.tag }}
96136
draft: false
97137
prerelease: false
138+
files: packages/*
139+
generate_release_notes: true
98140
fail_on_unmatched_files: false
99141
env:
100142
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/pylibfranka-wheels.yml

Lines changed: 52 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -231,29 +231,67 @@ jobs:
231231
uses: softprops/action-gh-release@v2
232232
with:
233233
tag_name: ${{ steps.get_release_info.outputs.tag }}
234-
name: pylibfranka ${{ steps.get_release_info.outputs.version }}
234+
name: libfranka ${{ steps.get_release_info.outputs.version }}
235235
draft: false
236236
prerelease: false
237237
files: dist/*
238238
body: |
239-
# pylibfranka ${{ steps.get_release_info.outputs.version }}
239+
# libfranka ${{ steps.get_release_info.outputs.version }}
240+
241+
C++ library and Python bindings for controlling Franka robots.
242+
243+
---
244+
245+
## libfranka (C++ Library)
246+
247+
### Installation from Debian Package
248+
Download the appropriate `.deb` file for your Ubuntu version from the assets below and install:
249+
250+
**Ubuntu 20.04 (Focal):**
251+
```bash
252+
sudo dpkg -i libfranka_${{ steps.get_release_info.outputs.version }}_focal_amd64.deb
253+
sudo apt-get install -f # Install dependencies if needed
254+
```
255+
256+
**Ubuntu 22.04 (Jammy):**
257+
```bash
258+
sudo dpkg -i libfranka_${{ steps.get_release_info.outputs.version }}_jammy_amd64.deb
259+
sudo apt-get install -f # Install dependencies if needed
260+
```
261+
262+
**Ubuntu 24.04 (Noble):**
263+
```bash
264+
sudo dpkg -i libfranka_${{ steps.get_release_info.outputs.version }}_noble_amd64.deb
265+
sudo apt-get install -f # Install dependencies if needed
266+
```
267+
268+
### Available Debian Packages
269+
| Ubuntu Version | Package |
270+
|----------------|---------|
271+
| 20.04 (Focal) | `libfranka_${{ steps.get_release_info.outputs.version }}_focal_amd64.deb` |
272+
| 22.04 (Jammy) | `libfranka_${{ steps.get_release_info.outputs.version }}_jammy_amd64.deb` |
273+
| 24.04 (Noble) | `libfranka_${{ steps.get_release_info.outputs.version }}_noble_amd64.deb` |
274+
275+
---
276+
277+
## pylibfranka (Python Bindings)
240278
241279
Python bindings for libfranka, providing easy-to-use Python interfaces for controlling Franka robots.
242280
243-
## Installation
281+
### Installation
244282
245-
### From PyPI (Recommended)
283+
#### From PyPI (Recommended)
246284
```bash
247285
pip install pylibfranka==${{ steps.get_release_info.outputs.version }}
248286
```
249287
250-
### From GitHub Release
288+
#### From GitHub Release
251289
Download the appropriate wheel for your Python version and install:
252290
```bash
253291
pip install pylibfranka-${{ steps.get_release_info.outputs.version }}-cp310-cp310-manylinux_2_34_x86_64.whl
254292
```
255293
256-
## Platform Compatibility
294+
### Platform Compatibility
257295
258296
| Ubuntu Version | Supported Python Versions |
259297
|----------------|---------------------------|
@@ -263,14 +301,14 @@ jobs:
263301
264302
**Note:** Ubuntu 20.04 users must use Python 3.9 due to glibc compatibility requirements.
265303
266-
## Available Wheels
304+
### Available Wheels
267305
- Python 3.9: `cp39-cp39-manylinux_2_31_x86_64.whl` (Ubuntu 20.04+)
268306
- Python 3.10: `cp310-cp310-manylinux_2_34_x86_64.whl` (Ubuntu 22.04+)
269307
- Python 3.11: `cp311-cp311-manylinux_2_34_x86_64.whl` (Ubuntu 22.04+)
270308
- Python 3.12: `cp312-cp312-manylinux_2_34_x86_64.whl` (Ubuntu 22.04+)
271309
- Source: `pylibfranka-${{ steps.get_release_info.outputs.version }}.tar.gz`
272310
273-
## Quick Start
311+
### Quick Start
274312
```python
275313
import pylibfranka
276314
print(f"pylibfranka version: {pylibfranka.__version__}")
@@ -279,10 +317,13 @@ jobs:
279317
state = robot.read_once()
280318
```
281319
320+
---
321+
282322
## Documentation
283-
- [Examples](https://github.com/frankarobotics/libfranka/tree/main/pylibfranka/examples)
284-
- [API Documentation](https://frankarobotics.github.io/libfranka/pylibfranka/latest)
285-
- [README](https://github.com/frankarobotics/libfranka/blob/main/pylibfranka/README.md)
323+
- [libfranka Documentation](https://frankarobotics.github.io/libfranka/)
324+
- [pylibfranka Examples](https://github.com/frankarobotics/libfranka/tree/main/pylibfranka/examples)
325+
- [pylibfranka API Documentation](https://frankarobotics.github.io/libfranka/pylibfranka/latest)
326+
- [pylibfranka README](https://github.com/frankarobotics/libfranka/blob/main/pylibfranka/README.md)
286327
287328
publish_pypi:
288329
name: Publish to PyPI

CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@
22

33
All notable changes to libfranka in this file.
44

5-
## [Unreleased]
5+
## [0.20.2]
6+
### libfranka - C++
7+
- Fix the github workflow to push all the debian packages from 20.4, 22.04 and 24.04
68
### pylibfranka - Python
79
#### Added
810
- Automated publishing to PyPI via GitHub Actions workflow. When a version tag is pushed, the workflow automatically builds wheels for Python 3.9, 3.10, 3.11, and 3.12, and publishes them to PyPI. Users can now install pylibfranka directly from PyPI using `pip install pylibfranka`.
11+
- Fix the pylibfranka pybind error with std::nullopt
912

1013
## [0.20.1]
1114

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.11)
22

33
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
44

5-
set(libfranka_VERSION 0.20.1)
5+
set(libfranka_VERSION 0.20.2)
66

77
project(libfranka
88
VERSION ${libfranka_VERSION}

package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
schematypens="http://www.w3.org/2001/XMLSchema"?>
55
<package format="3">
66
<name>libfranka</name>
7-
<version>0.20.1</version>
7+
<version>0.20.2</version>
88
<description>libfranka is a C++ library for Franka Robotics research robots</description>
99
<maintainer email="support@franka.de">Franka Robotics GmbH</maintainer>
1010
<license>Apache 2.0</license>

pylibfranka/src/async_control.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ void bind_async_control(py::module& m) {
2727
@return CommandResult containing the motion UUID, success flag, and error message
2828
)pbdoc")
2929
.def("get_target_feedback", &franka::AsyncPositionControlHandler::getTargetFeedback,
30-
py::arg("robot_state") = std::nullopt, R"pbdoc(
30+
py::arg("robot_state") = py::none(), R"pbdoc(
3131
Get feedback on the current target.
3232
3333
@param robot_state Optional current robot state for more detailed feedback

0 commit comments

Comments
 (0)