[yast-devel] Hackweek projects, ideas
Hi all, if you are still not sure which project to join during the next Hackweek (starting this Friday [1]) here are some projects and ideas for you: Projects -------- 1. "Controlling and Testing the YaST UI Remotely" [2] This is a continuation of my previous project [3] which worked well but has some limitations and it was a too big step forward. This time I would make smaller steps but more stable. The goal is to have a REST API for controlling and testing the libyui based applications (not limited only to YaST). (BTW I'll be working on this one, but this can be easily split to several tasks for more developers. You are welcome to join!) 2. "The Team Dashboard Web Application" [4] As we already discussed several times, having a central dashboard application collecting the status from Github, Travis, Jenkins, Open Build Service, Bugzilla, Trello... would be nice to have. I already started a prototype some time ago but it is still far from production use. You can see a live demo at [5]. There are some usability and technical issues. So if you would like to try something different but still stay with Ruby (as this is written in Ruby on Rails) this might be a good project for you. Ideas ----- If the projects above look too complex for you I have bunch of simpler ideas. These are not entered at the hackweek project page, add them by yourselves if you want to work on something from the list below. 1. Drop the Remaining YCP Files Although we switched to Ruby there are still lot of YCP data files used in YaST. Most of them are in yast2-country, see [6]. The goal would be to replace all YCP files by some generic format, readable even outside YaST. My proposal would be YAML, but also JSON or XML would be acceptable... (Each of them has some advantages and disadvantages so there is no clear winner.) 2. Simplify the Popup Module The YaST Popup module provides a huge number of functions like Popup.Error, Popup.TimedError, Popup.LongError, Popup.LongErrorGeometry, Popup.TimedLongError, Popup.TimedLongErrorGeometry, Popup.ErrorDetails ... It would be nice to clean the mess and have a single function covering all combinations via optional arguments, for example: Popup.Display("Message") Popup.Display("Message", timeout: 60) Popup.Display("Message", headline: "Headline") Popup.Display("Message", details: "...", timeout: 60) Popup.Display("Do you want to ...", type: :yes_no) 3. Drop yast2-xml, use the native Ruby XML parser We have a .xml agent for parsing the XML files. But Ruby has a native support for XML, we not need any extra agent for that. As a backend we could use REXML ([+] pure Ruby, included in Ruby stdlib [-] slower) or the nokogiri gem ([+] faster [-] external dependency). As we need the parser only rarely (e.g. the AY XML profile is parsed only once at the beginning) we do not need a super fast parser. Personally I'd prefer the builtin REXML, but obviously it's up to you what you choose... 4. Drop .dev.tty agent, use native Readline For input/output in the command line mode we use the .dev.tty agent. That's for historical reasons, YCP YaST could not read/write to STDIN/STDOUT. Now with Ruby we can use the native Readline support and drop this ugly Perl agent... 5. Folding the Travis Output Our Travis builds run quite a lot of steps and each step produces a huge amount of log messages, e.g. yast2 log is almost 7000 (!) lines long [7]. To make the log navigation easier Travis supports "folds". Simply print a message in format "travis_fold:start:<name>" and later "travis_fold:end:<name>" to stdout. The lines between the tags will be folded by default and described by the <name> string. So we could define "Rubocop", "Unit tests", "Package build",... steps. You can see the tags after clicking the "Raw log" button at Travis. See how the docu team used this feature in the past [8]. (This is quite easy project, you might choose it as a secondary project if you finish your primary project sooner :-)) More Ideas or Details? ---------------------- If you are interested in some idea and need more details just ping me. If you still cannot find the right project for you ping me as well, I still have some more in my sleeve... ;-) [1] https://hackweek.suse.com/ [2] https://hackweek.suse.com/16/projects/controlling-and-testing-the-yast-ui-re... [3] https://hackweek.suse.com/16/projects/yast-integration-tests-using-cucumber [4] https://hackweek.suse.com/16/projects/the-yast-team-dashboard-web-applicatio... [5] https://ydashboard.herokuapp.com [6] https://github.com/yast/yast-country/blob/master/language/src/data/languages... [7] https://travis-ci.org/yast/yast-yast2 [8] https://travis-ci.org/SUSE/doc-sle/builds/297915514 -- Ladislav Slezák YaST Developer SUSE LINUX, s.r.o. Corso IIa Křižíkova 148/34 18600 Praha 8 -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org To contact the owner, e-mail: yast-devel+owner@opensuse.org
participants (1)
-
Ladislav Slezak