Giter VIP home page Giter VIP logo

tumbleweed-review's Introduction

tumbleweed-review

Tools for ingesting various data sources and scoring Tumbleweed release stability.

data sources

The following data sources our considered.

scoring

The above data sources are reviewed and each snapshot is given a stability score. The goal being to error on the side of caution and to allow users to avoid troublesome releases. Obviously, there are many enthusiasts who enjoy encountering issues and working to resolve them, but others are looking for a relatively stable experience.

Releases with a low score will continue to impact future release scores with a gradual trail-off. Given that issues generally are not fixed immediately in the next release this assumes the next few releases may still be affected. If the issue persists and is severe it will likely be mentioned again in the mailing list and the score again reduced.

Major system components that are either release candidates or low minor releases are also considered to be risky. For example, recent Mesa release candidates caused white/black screens for many users which is not-trivial to recover from for less-technical users. Such issues come around from time to time since openQA does not test on real world hardware where such graphic driver issues are generally encountered.

Release stability is considered to be pending for the first week after release to allow time for reports to surface. This of course depends on enthusiasts who update often, encounter, and report problems.

The scoring is likely to be tweaked over time to reflect observations. It may also make sense to add a manual override feature to aid scoring when something critical is encountered.

future

Integrating the scoring data into the tumbleweed-cli would allow users to pick a minimum stability level or score and only update to those releases. Such a mechanism can be vital for systems run by family members, servers, or the wave of gamers looking for the latest OSS graphics stack.

usage

A subcommand is provided for each data source, scoring, and output to markdown. Eventually, a one-stop command will be provided, but for now the data subcommands should be run first followed by scoring and then markdown.

  • bug, mail, snapshot
  • score
  • markdown

Use the --read-only flag to clone the production site and dump local changed into it without committing. Otherwise use the --output-dir flag to dump elsewhere without a clone.

production

The regularly updated site can be viewed at review.tumbleweed.boombatower.com.

tumbleweed-review's People

Contributors

boombatower avatar cboltz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

cboltz nodeg tmojzes

tumbleweed-review's Issues

Wrong kernel version is stated in latest snapshots

In snapshot 20201224, the websites states the kernel version is 5.9.14:
https://review.tumbleweed.boombatower.com/2020/12/24/release.html
However, when trying to install it, i noticed it actually has kernel version 5.10.1-1.1.

When looking at snapshot 20201223's unique binary list, you can see kernel 5.10.1-1.1 as one of the unique binaries:
https://download.opensuse.org/history/20201223/rpm.unique.list
Also, the kernel source word for it is in bold for some reason:
https://review.tumbleweed.boombatower.com/2020/12/23/release.html

it seems to me like an editting error.

Remove old _posts

Just as the data sources will be cleared the _posts should be removed for releases which are no longer covered.

Rework subject_reduce() to improve edge-case handling

The current subject_reduce() is a bit rough around the edges. Likely needs to be reworked around specific cases with some proper tests.

def subject_reduce(message, release):
"""Reduce subject to essential summary without mail clutter."""
subject = message['subject']
# Strip reply and mailing list prefixes.
subject = subject.replace('\n', '')
subject = re.sub(r'^[Rr][Ee]:\s*', '', subject)
subject = re.sub(r'^\[{}\] '.format(MAILING_LIST), '', subject)
subject = re.sub(r'^[Rr][Ee]:\s*', '', subject)
if re.match(RELEASE_PATTERN_SHORT, subject):
# Subject matches announcement, could attempt looking at body.
return 'no summary given'
# Remove references to release (may work better special-casing).
subject = re.sub(r'\((?:was|re):[^)]+\)', '', subject)
subject = re.sub(r',?\s?(?:was|re):.*$', '', subject)
subject = re.sub(r'after(?: (?:updating|upgrading|latest))?(?: to)?(?: [Ss]napshot)?(?: TW)? {}'.format(release), '', subject)
subject = re.sub(r'update \d+ (?:->|to) \d+', '', subject)
subject = re.sub(r' (?:in|with)(?: [Ss]napshot)? {}'.format(release), '', subject)
subject = re.sub(r'^.*?{}(?::\s| - )?'.format(release), '', subject)
subject = subject.strip()
if not subject:
return 'failed to summarize'
return subject

links to mailing list broken

Based on #9 link generation to mailing list threads is broken since the URLs are not generated in a predictable manor nor are the Archived-At headers included in the mailbox download. The best solution would be for upstream to include the headers as setting up a email subscription and downloading all mail to get the headers is more work and maintenance plus missing the period until it is setup.

Sugestions about website

Hello!
I found your project about Tumbleweed snapshots reviews very interesting. A way to check if you can safely update your system or wait a fix for an issue.

I have a couple of suggestions for the website (just my opinion, sorry I'm not a developer, so I can't provide a PR with the solution)

  1. To fix the header in top, the main bar on top with the title, about and data. I mean even if you scroll down, keep that bar in top.
  2. Add a quick way to go to top if you have scroll down a lot
  3. Make the font smaller to catch more snapshots in the screen without scroll down a lot

Thanks a lot for your hard work and lines of code! ;)

email migration broke snapshot reviewer

Hi @boombatower I hope all is well. We when through an email migration just recently and the reviews stopped. The URL used to generate something like opensuse-factory/2020-11/msg00113.html, but now it generates a URL that's something like https://lists.opensuse.org/archives/list/[email protected]/thread/6NLC2T3VJ27BXG5KMGMEH4LXDRHE2MSR/, which I think effects the script. I was looking at the code below and thought this might be the reason for why the emails stopped, but I really don't know nor would I have a clue how to update a script that can capture the new url format for the mail.

MAILING_LIST = 'opensuse-factory'
MAILING_LIST_URL = 'https://lists.opensuse.org/{list}/{year}-{month}/msg{number:05d}.html'
MAILBOX_URL = 'https://lists.opensuse.org/{list}/{list}-{year}-{month}.mbox.gz'
RELEASE_PATTERN = r'^[{list}] New Tumbleweed snapshot (?P\d+) released!$'
RELEASE_PATTERN_SHORT = r'^New Tumbleweed snapshot (?P\d+)( released!)?$'

This is in mail.py

gcc version report

The quick binary version table isn't reporting gcc11 that was added at snapshot 2021-02-05.

Example:
Snapshot 2021-02-12 has gcc11-11.0.0+git183291-1.1 and gcc-10-3.2 but the table shows:

Binary | Version
gcc | 10
gcc7 | 7.5.0+r278197
gcc9 | 9.3.1+git1684

Detect release candidates in binary_interest`

Right now the regex does not properly include release candidate designations. The regex in snapshot should be improved and score updated to add impact for releases candidate Mesa or Plasma.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.