Goal:

I'd like to have the release process defined in markdown/git and use it as a source for process creation in redmine.

openSUSE Leap Release process definition currently lives inside redmine, from where we copy it from release to release via the integrated copy/clone functionality.

The plan is to create it directly from Git and benefit from issues/pull request for the coordinated process improvements. The Tool which SLE uses to create Jira from Markdown is here https://github.com/opensuse/md2workflow, so we essentially need to add just the redmine support.

Reasoning I have really good experience with co-operating within larger team on the process improvement via gitlab/issues and I believe that opensuse would benefit from it as well. We'd set some standards such as "Definition of Done" for the task (when the task can be resolved). I also believe that this would bring more transparency in between community and Release Management.

The benefits were clear, process is more and more follow-able by everyone within the team and task instructions. Set and enforce some process standards via git hooks/github ci, e.g. every task needs to self-contain definition of done. And it could be easy to unify some process steps between leap and SLE.

Useful links:

Current improvement backlog for the SLE process. https://gitlab.suse.de/sle-prjmgr/release-management-checklist/issues

SLE-12-SP5 process overview in JIRA https://jira.suse.com/secure/RapidBoard.jspa?rapidView=1441&useStoredSettings=true

Release Management Checklist documentation https://confluence.suse.com/display/projectmanagement/Release+Management+Checklist

openSUSE Leap process overview in Redmine https://progress.opensuse.org/projects/leap_152/issues/gantt

Tool which is intended to create both JIRA and newly redmine process (this would be part of the hackweek excercise): https://github.com/opensuse/md2workflow

*How can you participate? * Feel free to check available tasks with hackweek19 label: https://github.com/openSUSE/md2workflow/issues https://github.com/openSUSE/openSUSE-release-process/issues

Looking for hackers with the skills:

opensuse leap releasemanagement python markdown github process ci redmine rest

This project is part of:

Hack Week 19

Activity

  • almost 6 years ago: okurz liked this project.
  • almost 6 years ago: lkocman added keyword "rest" to this project.
  • almost 6 years ago: lkocman added keyword "redmine" to this project.
  • almost 6 years ago: bmwiedemann joined this project.
  • almost 6 years ago: SLindoMansilla liked this project.
  • almost 6 years ago: deneb_alpha joined this project.
  • almost 6 years ago: bigironman joined this project.
  • almost 6 years ago: bigironman liked this project.
  • almost 6 years ago: lkocman added keyword "ci" to this project.
  • almost 6 years ago: lkocman added keyword "process" to this project.
  • almost 6 years ago: lkocman added keyword "opensuse" to this project.
  • almost 6 years ago: lkocman added keyword "leap" to this project.
  • almost 6 years ago: lkocman added keyword "releasemanagement" to this project.
  • almost 6 years ago: lkocman added keyword "python" to this project.
  • almost 6 years ago: lkocman added keyword "markdown" to this project.
  • almost 6 years ago: lkocman added keyword "github" to this project.
  • almost 6 years ago: lkocman liked this project.
  • almost 6 years ago: hennevogel liked this project.
  • almost 6 years ago: deneb_alpha liked this project.
  • almost 6 years ago: lkocman started this project.
  • almost 6 years ago: lkocman originated this project.

  • Comments

    • lkocman
      almost 6 years ago by lkocman | Reply

      Just a brainstorm github.com/opensuse/how-to-release sounds more sexy than /opensuse-release-process which is otherwise more accourate

      • gameboy974
        almost 6 years ago by gameboy974 | Reply

        I disagree : ) opensuse-release-process is simpler and more accurate therefore more sexy ; )

    • lkocman
      almost 6 years ago by lkocman | Reply

      https://github.com/openSUSE/openSUSE-release-process

    • lkocman
      almost 6 years ago by lkocman | Reply

      https://github.com/openSUSE/md2workflow/issues/11

    • lkocman
      almost 6 years ago by lkocman | Reply

      I've just created https://github.com/openSUSE/md2workflow/tree/hackweek19

      People who want to help can check https://github.com/openSUSE/md2workflow/issues/11 which is a task to support redmine. We essentially want to replicate md2workflow/backend/jirabackend.py but for redmine (including task depedencies and so on). I could use a help on this one as long as people are willing to write some basic tests as well.

    • lkocman
      almost 6 years ago by lkocman | Reply

      This is the task for initial import of redmine in m2workflow compatible format https://github.com/openSUSE/openSUSE-release-process/issues/1

    • lkocman
      almost 6 years ago by lkocman | Reply

      This is the task to create a tool which can convert redmine exports into md2workflow markdown files. https://github.com/openSUSE/md2workflow/issues/16

      All tasks in md2workflow and openSUSE Release process have a Hackweek19 prefix.

    • lkocman
      almost 6 years ago by lkocman | Reply

      https://github.com/openSUSE/md2workflow/issues/16 Was resolved. This unblocks bunch of other tasks. You can now export redmine to markdown (example is the attached single-dump.txt to the Issue 16).

      First task for myself is to replace initial tree with the output from lkocman@deadrat:~/Workspace/md2workflow> bin/redmine2md ~/Workspace/opensuse/openSUSE-release-process/redmine-export-openSUSE-Leap-15.220200205.csv

      Fortunately we can use --target-version to e.g. Chose only tasks for Alpha and dump them to the file and so on. I expect also a lot of issues without Target version set, so these will require manual placement to e.g. unsorted.md This will unblock more tasks in openSUSE-release-process

      What I'd really appreciate as a help is to create a simple ical integration. https://github.com/openSUSE/md2workflow/issues/17 This might be as easy as adding markdown variables (Start date: YYYY-MMDD, Due Date: YYYY-MMDD and Schedule item: MATCHING NAME from .ical) and simply be able to pair these with values from .ical file which could be passed as an argument to bin/md2worflow --env local (--ical-file FILE) example/my_project.conf

    • lkocman
      almost 6 years ago by lkocman | Reply

      Initial import is done! This unblocks whole bunch of tasks for

      Just out of curiousity I did try to import openSUSE Leap 15.2 instructions to JIRA to see how it would look like. Fortunately there were no issues/errors raised during creation.

      Stdout from md2workflow with jira backend: http://pastebin.suse.de/25600 Backlog: https://jira-devel.suse.de/secure/RapidBoard.jspa?rapidView=1492&view=planning&selectedIssue=RMC-2258 Kanban board: https://jira-devel.suse.de/secure/RapidBoard.jspa?rapidView=1492&view=detail&selectedIssue=RMC-2229

      (tasks states are random, data might be trashed in about a week or so, as this is a devel instance of jira)

    • lkocman
      almost 6 years ago by lkocman | Reply

      The initial import ticket https://github.com/openSUSE/openSUSE-release-process/issues/1 Actual content of the process: https://github.com/openSUSE/openSUSE-release-process/tree/hackweek19

    • lkocman
      almost 6 years ago by lkocman | Reply

      Initial skeleton for redmine support https://github.com/openSUSE/md2workflow/pull/22

      Can be tested by running

      bin/md2workflow --env config/redmine-example.conf example/my_project.conf

      or openSUSE-Leap.conf from openSUSE-release-process (branch hackweek19)

    • lkocman
      almost 6 years ago by lkocman | Reply

      Just a tip for testing api by using a ad-hoc container running redmine instance https://hub.docker.com/_/redmine ` sudo docker pull redmine sudo docker run --name hackweek19-redmine redmine sudo docker inspect hackweek19-redmine | grep '"IPAddress":' "IPAddress": "172.17.0.2",

      grep redmine /etc/hosts 172.17.0.2 redmine-local `

    • lkocman
      almost 6 years ago by lkocman | Reply

      (admin/admin)

    • lkocman
      almost 6 years ago by lkocman | Reply

      Just figured out that I'll have to add python3-python-redmine to Leap :-) Meanwhile adding dependency on python-redmine to the WIP pull request in md2workflow

    • lkocman
      almost 6 years ago by lkocman | Reply

      Got working redmine session in redminebackend.py!

    • lkocman
      almost 6 years ago by lkocman | Reply

      So I have the local redmine creation done. However I figured out that you can't create the entire stack of layers by yourself as redmine api does not support adding Tracker. It supports only .get() for this Resource.

      Therefore I can create project -> subproject -> targetversion -> (NOT tracker) -> task -> subtask Reansonable sounds to have setup of Project and Subproject in advance together with tracker. While targetversion, task subtask gets created by the tool. https://python-redmine.com/resources/tracker.html

    • lkocman
      almost 6 years ago by lkocman | Reply

      Essentially, Issue states, issue tracker, issue workflow and issue priorities have to be defined in parent project and then we can inherit it all. So that should not be a problem if you're not creating redmine setup from scratch, like I do :-)

    • lkocman
      almost 6 years ago by lkocman | Reply

      I think I'm 80 percent done with coding part. Just small correction in issue relations and schedule integration. That would be topic for tomorrow.

      Last code is available here https://github.com/openSUSE/md2workflow/pull/22 and https://github.com/openSUSE/openSUSE-release-process/tree/hackweek19

    • lkocman
      almost 6 years ago by lkocman | Reply

      Redmine support is finished. Pull request was merged.

    • lkocman
      almost 6 years ago by lkocman | Reply

      Schedule integration was also done for both Redmine and Jira.

    • lkocman
      almost 6 years ago by lkocman | Reply

      Marking project as finished! Ufff... add-emoji

    • okurz
      almost 6 years ago by okurz | Reply

      just in time for the weekend ;)

    Similar Projects

    Create openSUSE images for Arm and RISC-V boards by avicenzi

    Project Description

    Create openSUSE images (or test generic EFI images) for Arm and RISC-V boards that are not yet supported.

    Goal for Hackweek

    Create bootable images of Tumbleweed for SBCs that currently have no images available or are untested.

    Consider generic EFI images where possible, as some boards can hold a bootloader.

    Document in the openSUSE Wiki how to flash and use the image for a given board.

    Hack Week 25

    Hack Week 24

    Hack Week 23

    Hack Week 22

    Hack Week 21

    Resources


    OpenRC in openSUSE by jimedrand

    Description

    I have been using openSUSE for 3 years and I am just seen the systemd as init system. Actually, I want to make openSUSE with supports to another init such as OpenRC init that I'm always using it in another distros, and I was think, "what about if I'm including OpenRC init in openSUSE and give anyone as second way for them who don't want to use systemd?", and I'm curious about that. That's why I'm opening these.

    Goals

    Giving OpenRC support for Tumbleweed first, then going in Leap in future if possible.


    Improvements to osc (especially with regards to the Git workflow) by mcepl

    Description

    There is plenty of hacking on osc, where we could spent some fun time. I would like to see a solution for https://github.com/openSUSE/osc/issues/2006 (which is sufficiently non-serious, that it could be part of HackWeek project).


    Improve/rework household chore tracker `chorazon` by gniebler

    Description

    I wrote a household chore tracker named chorazon, which is meant to be deployed as a web application in the household's local network.

    It features the ability to set up different (so far only weekly) schedules per task and per person, where tasks may span several days.

    There are "tokens", which can be collected by users. Tasks can (and usually will) have rewards configured where they yield a certain amount of tokens. The idea is that they can later be redeemed for (surprise) gifts, but this is not implemented yet. (So right now one needs to edit the DB manually to subtract tokens when they're redeemed.)

    Days are not rolled over automatically, to allow for task completion control.

    We used it in my household for several months, with mixed success. There are many limitations in the system that would warrant a revisit.

    It's written using the Pyramid Python framework with URL traversal, ZODB as the data store and Web Components for the frontend.

    Goals

    • Add admin screens for users, tasks and schedules
    • Add models, pages etc. to allow redeeming tokens for gifts/surprises
    • …?

    Resources

    tbd (Gitlab repo)


    Liz - Prompt autocomplete by ftorchia

    Description

    Liz is the Rancher AI assistant for cluster operations.

    Goals

    We want to help users when sending new messages to Liz, by adding an autocomplete feature to complete their requests based on the context.

    Example:

    • User prompt: "Can you show me the list of p"
    • Autocomplete suggestion: "Can you show me the list of p...od in local cluster?"

    Example:

    • User prompt: "Show me the logs of #rancher-"
    • Chat console: It shows a drop-down widget, next to the # character, with the list of available pod names starting with "rancher-".

    Technical Overview

    1. The AI agent should expose a new ws/autocomplete endpoint to proxy autocomplete messages to the LLM.
    2. The UI extension should be able to display prompt suggestions and allow users to apply the autocomplete to the Prompt via keyboard shortcuts.

    Resources

    GitHub repository


    Update M2Crypto by mcepl

    There are couple of projects I work on, which need my attention and putting them to shape:

    Goal for this Hackweek

    • Put M2Crypto into better shape (most issues closed, all pull requests processed)
    • More fun to learn jujutsu
    • Play more with Gemini, how much it help (or not).
    • Perhaps, also (just slightly related), help to fix vis to work with LuaJIT, particularly to make vis-lspc working.


    Improve chore and screen time doc generator script `wochenplaner` by gniebler

    Description

    I wrote a little Python script to generate PDF docs, which can be used to track daily chore completion and screen time usage for several people, with one page per person/week.

    I named this script wochenplaner and have been using it for a few months now.

    It needs some improvements and adjustments in how the screen time should be tracked and how chores are displayed.

    Goals

    • Fix chore field separation lines
    • Change screen time tracking logic from "global" (week-long) to daily subtraction and weekly addition of remainders (more intuitive than current "weekly time budget method)
    • Add logic to fill in chore fields/lines, ideally with pictures, falling back to text.

    Resources

    tbd (Gitlab repo)


    Is SUSE Trending? Popularity and Developer Sentiment Insight Using Native AI Capabilities by terezacerna

    Description

    This project aims to explore the popularity and developer sentiment around SUSE and its technologies compared to Red Hat and their technologies. Using publicly available data sources, I will analyze search trends, developer preferences, repository activity, and media presence. The final outcome will be an interactive Power BI dashboard that provides insights into how SUSE is perceived and discussed across the web and among developers.

    Goals

    1. Assess the popularity of SUSE products and brand compared to Red Hat using Google Trends.
    2. Analyze developer satisfaction and usage trends from the Stack Overflow Developer Survey.
    3. Use the GitHub API to compare SUSE and Red Hat repositories in terms of stars, forks, contributors, and issue activity.
    4. Perform sentiment analysis on GitHub issue comments to measure community tone and engagement using built-in Copilot capabilities.
    5. Perform sentiment analysis on Reddit comments related to SUSE technologies using built-in Copilot capabilities.
    6. Use Gnews.io to track and compare the volume of news articles mentioning SUSE and Red Hat technologies.
    7. Test the integration of Copilot (AI) within Power BI for enhanced data analysis and visualization.
    8. Deliver a comprehensive Power BI report summarizing findings and insights.
    9. Test the full potential of Power BI, including its AI features and native language Q&A.

    Resources

    1. Google Trends: Web scraping for search popularity data
    2. Stack Overflow Developer Survey: For technology popularity and satisfaction comparison
    3. GitHub API: For repository data (stars, forks, contributors, issues, comments).
    4. Gnews.io API: For article volume and mentions analysis.
    5. Reddit: SUSE related topics with comments.


    The Agentic Rancher Experiment: Do Androids Dream of Electric Cattle? by moio

    Rancher is a beast of a codebase. Let's investigate if the new 2025 generation of GitHub Autonomous Coding Agents and Copilot Workspaces can actually tame it. A GitHub robot mascot trying to lasso a blue bull with a Kubernetes logo tatooed on it


    The Plan

    Create a sandbox GitHub Organization, clone in key Rancher repositories, and let the AI loose to see if it can handle real-world enterprise OSS maintenance - or if it just hallucinates new breeds of Kubernetes resources!

    Specifically, throw "Agentic Coders" some typical tasks in a complex, long-lived open-source project, such as:


    The Grunt Work: generate missing GoDocs, unit tests, and refactorings. Rebase PRs.

    The Complex Stuff: fix actual (historical) bugs and feature requests to see if they can traverse the complexity without (too much) human hand-holding.

    Hunting Down Gaps: find areas lacking in docs, areas of improvement in code, dependency bumps, and so on.


    If time allows, also experiment with Model Context Protocol (MCP) to give agents context on our specific build pipelines and CI/CD logs.

    Why?

    We know AI can write "Hello World." and also moderately complex programs from a green field. But can it rebase a 3-month-old PR with conflicts in rancher/rancher? I want to find the breaking point of current AI agents to determine if and how they can help us to reduce our technical debt, work faster and better. At the same time, find out about pitfalls and shortcomings.

    The Outputs

    ❥ A "State of the Agentic Union" for SUSE engineers, detailing what works, what explodes, and how much coffee we can drink while the robots do the rebasing.

    ❥ Honest, Daily Updates With All the Gory Details


    issuefs: FUSE filesystem representing issues (e.g. JIRA) for the use with AI agents code-assistants by llansky3

    Description

    Creating a FUSE filesystem (issuefs) that mounts issues from various ticketing systems (Github, Jira, Bugzilla, Redmine) as files to your local file system.

    And why this is good idea?

    • User can use favorite command line tools to view and search the tickets from various sources
    • User can use AI agents capabilities from your favorite IDE or cli to ask question about the issues, project or functionality while providing relevant tickets as context without extra work.
    • User can use it during development of the new features when you let the AI agent to jump start the solution. The issuefs will give the AI agent the context (AI agents just read few more files) about the bug or requested features. No need for copying and pasting issues to user prompt or by using extra MCP tools to access the issues. These you can still do but this approach is on purpose different.

    Goals

    1. Add Github issue support
    2. Proof the concept/approach by apply the approach on itself using Github issues for tracking and development of new features
    3. Add support for Bugzilla and Redmine using this approach in the process of doing it. Record a video of it.
    4. Clean-up and test the implementation and create some documentation
    5. Create a blog post about this approach

    Resources

    There is a prototype implementation here. This currently sort of works with JIRA only.


    Review SCC team internal development processes by calmeidadeoliveira

    Description

    Continue with the Hackweek 2024, with focus on reviewing existing processes / ways of working and creating workflows:

    Goals

    • Check all the processes from [1] and [3]
    • move them to confluence [4], make comments, corrections, etc.
    • present the result to the SCC team and ask for reviews

    Resources

    [1] https://github.com/SUSE/scc-docs/blob/master/team/workflow/kanban-process.md [2] https://github.com/SUSE/scc-docs/tree/master/team [3] https://github.com/SUSE/scc-docs/tree/master/team/workflow

    Confluence

    [4] https://confluence.suse.com/spaces/scc/pages/1537703975/Processes+and+ways+of+working


    HTTP API for nftables by crameleon

    Background

    The idea originated in https://progress.opensuse.org/issues/164060 and is about building RESTful API which translates authorized HTTP requests to operations in nftables, possibly utilizing libnftables-json(5).

    Originally, I started developing such an interface in Go, utilizing https://github.com/google/nftables. The conversion of string networks to nftables set elements was problematic (unfortunately no record of details), and I started a second attempt in Python, which made interaction much simpler thanks to native nftables Python bindings.

    Goals

    1. Find and track the issue with google/nftables
    2. Revisit and polish the Go or Python code (prefer Go, but possibly depends on implementing missing functionality), primarily the server component
    3. Finish functionality to interact with nftables sets (retrieving and updating elements), which are of interest for the originating issue
    4. Align test suite
    5. Packaging

    Resources

    • https://git.netfilter.org/nftables/tree/py/src/nftables.py
    • https://git.com.de/Georg/nftables-http-api (to be moved to GitHub)
    • https://build.opensuse.org/package/show/home:crameleon:containers/pytest-nftables-container

    Results

    • Go nftables issue was related to set elements needing to be added with different start and end addresses - coincidentally, this was recently discovered by someone else, who added a useful helper function for this: https://github.com/google/nftables/pull/342.

    Side results

    Upon starting to unify the structure and implementing more functionality, missing JSON output support was noticed for some subcommands in libnftables. I am submitting patches as needed:

    • https://lore.kernel.org/netfilter-devel/20251203131736.4036382-2-georg@syscid.com/T/#u