SlideShare a Scribd company logo
Mothra
A FreeBSD send-pr tool for bugzilla system
Daniel Lin (pct), BSDTW 2017
https://github.com/pct/mothra
https://github.com/pct/freebsd_utils
Preface
When I was 20, I was a
journalism student.
Preface
Because of the School
BBS system, I start
using FreeBSD.
// do you ever make world everyday?
Preface
Thanks for FreeBSD, I
got my first job as a
sysadmin. I like the job
better than be a
reporter.
Preface
I love FreeBSD so
much, want to improve
it, then I start learning
programming.
Preface
There are some ports maintained by me:
- benchmarks/tsung
- devel/rubygem-rodzilla
- graphics/p5-Image-ExifTool-devel
- sysutils/py-pywatchman
- sysutils/py-ranger
- sysutils/rsyncrypto
- sysutils/rubygem-mothra
- sysutils/watchman
- www/node (until 2016/4/11, been very busy)
- www/phalcon
Preface
I love to using porttools to
send-pr in early years, but
FreeBSD using bugzilla to
manage PRs for these years,
I just could not send-pr from
command line as before.
Preface
I develop a send-pr tool
named “Mothra” (to battle
bugZilla).
// Project since 2014/12/29
Preface
Mothra
Godzilla
My next project?
http://www.alternateending.com/images/l6WyL0fZW8wkNEzZLIRWUFQdMEk.
Normal send-pr flow
At normal send-pr flow, you may switch to browser
and terminal (ex: www/phalcon):
1. Open Browser, go to https://bugs.freebsd.org,
check if there is already a new version update pr.
2. Open terminal, `cd /usr/ports/www/; cp -rpf
phalcon phalcon.orig` to save original ports.
3. `cd phalcon`, update Makefile, set PORTVERSION.
4. `make makesum`, to update distinfo file.
5. make port patch files and test.
Normal send-pr flow
6. `genplist test` and check pkg-plist file.
7. `genplist clean`
8. `cd ..; diff -ruN phalcon.orig phalcon >
phalcon-3.2.5.diff`
9. scp phalcon-3.2.5.diff to your desktop.
10. Back to browser, sign in bugzilla.
11. File a bug: fill complex form, add attachment
(phalcon-3.2.5.diff).
12. Submit Bug.
Normal send-pr flow
Hmmm…
12 steps.
Mothra
What’s the Mothra way?
Mothra
Install:
# gem install mothra
Get setting example:
# curl https://raw.githubusercontent.com/
pct/mothra/master/.mothra.yml >
~/.mothra.yml
Mothra
Setting (~/.mothra.yml):
BZ_URL: https://bugs.freebsd.org/bugzilla/
BZ_USER: test@example.com
BZ_PASSWD: test ### IT’S DANGER HERE!!! ###
PRODUCT: Ports & Packages
COMPONENT: Individual Port(s)
STATUS: ['New', 'Open', 'In Progress', 'UNCONFIRMED']
Mothra
Usage:
- mothra search <keyword>, <days_ago=180>
- mothra submit <summary>, <file_path>
- mothra attach <bug_id>, <file_path>
- mothra browse <bug_id>
- mothra create <summary>
- mothra get <bug_id>
Mothra
Mothra, with my `up2` scripts, save 12 -> 4 steps:
1. `mothra search phalcon` to check if already a update PR
2. `. up2 www/phalcon 3.2.4 3.2.5`, and check and
fix files
3. `diff -ruN phalcon.orig phalcon >
phalcon-3.2.5.diff`
4. `mothra submit “[MAINTAINER] www/phalcon
update to 3.2.5” phalcon-3.2.5.diff`
Mothra
Lazy, but save more time to
maintain more ports :-)
ex: I just send-pr this noon.
But…
I just know “pgollucci/
freebsd-bugzilla-cli” this
week.
You could try It also, it
seems more functional.
One more thing
The https://bsdtw.org/ website is designed by my team, 4Point
Design. We provide Graphic Design, Printing, Web and iOS/
Android App Design/Develop.
Hope to have the opportunity to work with you!
Source Code
GitHub:
- pct/mothra
- pct/freebsd_utils (send-pr)

More Related Content

What's hot

Vagrant are you still develop in a non-virtual environment-
Vagrant  are you still develop in a non-virtual environment-Vagrant  are you still develop in a non-virtual environment-
Vagrant are you still develop in a non-virtual environment-
Anatoly Bubenkov
 
AHA-best-msf-interface-ever
AHA-best-msf-interface-everAHA-best-msf-interface-ever
AHA-best-msf-interface-ever
kernelsmith
 
Vagrant - Team Development made easy
Vagrant - Team Development made easyVagrant - Team Development made easy
Vagrant - Team Development made easy
Marco Silva
 
FPM at the Ruby Drink-up of Sophia, September 2011
FPM at the Ruby Drink-up of Sophia, September 2011FPM at the Ruby Drink-up of Sophia, September 2011
FPM at the Ruby Drink-up of Sophia, September 2011
rivierarb
 
Intro to Linux - Skillswap
Intro to Linux - Skillswap Intro to Linux - Skillswap
Intro to Linux - Skillswap
Thomas Buckley-Houston
 
Useful Vim Plugins
Useful Vim PluginsUseful Vim Plugins
Useful Vim Plugins
anveo
 
Perl dancer
Perl dancerPerl dancer
Perl dancer
Marian Marinov
 
Ripping web accessible .git files
Ripping web accessible .git filesRipping web accessible .git files
Ripping web accessible .git files
Vlatko Kosturjak
 
Kettunen, miaubiz fuzzing at scale and in style
Kettunen, miaubiz   fuzzing at scale and in styleKettunen, miaubiz   fuzzing at scale and in style
Kettunen, miaubiz fuzzing at scale and in style
DefconRussia
 
Pound & Varnish - Cache e Balanceamento de Carga
Pound & Varnish - Cache e Balanceamento de CargaPound & Varnish - Cache e Balanceamento de Carga
Pound & Varnish - Cache e Balanceamento de Carga
gsroma
 
Porting your favourite cmdline tool to Android
Porting your favourite cmdline tool to AndroidPorting your favourite cmdline tool to Android
Porting your favourite cmdline tool to Android
Vlatko Kosturjak
 
Wonderful world of (distributed) SCM or VCS
Wonderful world of (distributed) SCM or VCSWonderful world of (distributed) SCM or VCS
Wonderful world of (distributed) SCM or VCS
Vlatko Kosturjak
 
Cryptography implementation weaknesses: based on true story
Cryptography implementation weaknesses: based on true storyCryptography implementation weaknesses: based on true story
Cryptography implementation weaknesses: based on true story
Vlatko Kosturjak
 
Docker workshop-3105
Docker workshop-3105Docker workshop-3105
Docker workshop-3105
Thanassis Zografos
 
Picobgp - A simple deamon for routing advertising
Picobgp - A simple deamon for routing advertisingPicobgp - A simple deamon for routing advertising
Picobgp - A simple deamon for routing advertising
Claudio Mignanti
 
Topologia lab
Topologia labTopologia lab
Topologia lab
Cassio Ramos
 
fdsaf
fdsaffdsaf
fdsaf
Newsdesk
 
Django & Buildout (en)
Django & Buildout (en)Django & Buildout (en)
Django & Buildout (en)
zerok
 
Linux Commands
Linux CommandsLinux Commands
Linux Commands
Vishal Kothari
 
Docker e postgresql
Docker e postgresqlDocker e postgresql
Docker e postgresql
Fernando Ike
 

What's hot (20)

Vagrant are you still develop in a non-virtual environment-
Vagrant  are you still develop in a non-virtual environment-Vagrant  are you still develop in a non-virtual environment-
Vagrant are you still develop in a non-virtual environment-
 
AHA-best-msf-interface-ever
AHA-best-msf-interface-everAHA-best-msf-interface-ever
AHA-best-msf-interface-ever
 
Vagrant - Team Development made easy
Vagrant - Team Development made easyVagrant - Team Development made easy
Vagrant - Team Development made easy
 
FPM at the Ruby Drink-up of Sophia, September 2011
FPM at the Ruby Drink-up of Sophia, September 2011FPM at the Ruby Drink-up of Sophia, September 2011
FPM at the Ruby Drink-up of Sophia, September 2011
 
Intro to Linux - Skillswap
Intro to Linux - Skillswap Intro to Linux - Skillswap
Intro to Linux - Skillswap
 
Useful Vim Plugins
Useful Vim PluginsUseful Vim Plugins
Useful Vim Plugins
 
Perl dancer
Perl dancerPerl dancer
Perl dancer
 
Ripping web accessible .git files
Ripping web accessible .git filesRipping web accessible .git files
Ripping web accessible .git files
 
Kettunen, miaubiz fuzzing at scale and in style
Kettunen, miaubiz   fuzzing at scale and in styleKettunen, miaubiz   fuzzing at scale and in style
Kettunen, miaubiz fuzzing at scale and in style
 
Pound & Varnish - Cache e Balanceamento de Carga
Pound & Varnish - Cache e Balanceamento de CargaPound & Varnish - Cache e Balanceamento de Carga
Pound & Varnish - Cache e Balanceamento de Carga
 
Porting your favourite cmdline tool to Android
Porting your favourite cmdline tool to AndroidPorting your favourite cmdline tool to Android
Porting your favourite cmdline tool to Android
 
Wonderful world of (distributed) SCM or VCS
Wonderful world of (distributed) SCM or VCSWonderful world of (distributed) SCM or VCS
Wonderful world of (distributed) SCM or VCS
 
Cryptography implementation weaknesses: based on true story
Cryptography implementation weaknesses: based on true storyCryptography implementation weaknesses: based on true story
Cryptography implementation weaknesses: based on true story
 
Docker workshop-3105
Docker workshop-3105Docker workshop-3105
Docker workshop-3105
 
Picobgp - A simple deamon for routing advertising
Picobgp - A simple deamon for routing advertisingPicobgp - A simple deamon for routing advertising
Picobgp - A simple deamon for routing advertising
 
Topologia lab
Topologia labTopologia lab
Topologia lab
 
fdsaf
fdsaffdsaf
fdsaf
 
Django & Buildout (en)
Django & Buildout (en)Django & Buildout (en)
Django & Buildout (en)
 
Linux Commands
Linux CommandsLinux Commands
Linux Commands
 
Docker e postgresql
Docker e postgresqlDocker e postgresql
Docker e postgresql
 

Similar to Mothra - A FreeBSD send-pr tool for bugzilla system

Touch your NetBSD
Touch your NetBSDTouch your NetBSD
Touch your NetBSD
Pierre Pronchery
 
Puppet Camp Berlin 2014 Closing Keynote: Next steps for doing more awesome th...
Puppet Camp Berlin 2014 Closing Keynote: Next steps for doing more awesome th...Puppet Camp Berlin 2014 Closing Keynote: Next steps for doing more awesome th...
Puppet Camp Berlin 2014 Closing Keynote: Next steps for doing more awesome th...
Puppet
 
Oscar: Rapid Iteration with Vagrant and Puppet Enterprise - PuppetConf 2013
Oscar: Rapid Iteration with Vagrant and Puppet Enterprise - PuppetConf 2013Oscar: Rapid Iteration with Vagrant and Puppet Enterprise - PuppetConf 2013
Oscar: Rapid Iteration with Vagrant and Puppet Enterprise - PuppetConf 2013
Puppet
 
Bundling Packages and Deploying Applications with RPM
Bundling Packages and Deploying Applications with RPMBundling Packages and Deploying Applications with RPM
Bundling Packages and Deploying Applications with RPM
Alexander Shopov
 
Deploying Foreman in Enterprise Environments
Deploying Foreman in Enterprise EnvironmentsDeploying Foreman in Enterprise Environments
Deploying Foreman in Enterprise Environments
inovex GmbH
 
DevOpSec_DockerNPodMan-20230220.pdf
DevOpSec_DockerNPodMan-20230220.pdfDevOpSec_DockerNPodMan-20230220.pdf
DevOpSec_DockerNPodMan-20230220.pdf
kanedafromparis
 
Go profiling introduction
Go profiling introductionGo profiling introduction
Go profiling introduction
William Lin
 
Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013
Cosimo Streppone
 
Os dev tool box
Os dev tool boxOs dev tool box
Os dev tool box
bpowell29a
 
Omnibus to the future!
Omnibus to the future!Omnibus to the future!
Omnibus to the future!
Jan Ivar Beddari
 
Python on FreeBSD
Python on FreeBSDPython on FreeBSD
Python on FreeBSD
pycontw
 
Towards the perfect Drupal Dev Machine
Towards the perfect Drupal Dev MachineTowards the perfect Drupal Dev Machine
Towards the perfect Drupal Dev Machine
Krimson
 
OSMC 2021 | Icinga-Installer – the easy way to your Icinga
OSMC 2021 | Icinga-Installer – the easy way to your IcingaOSMC 2021 | Icinga-Installer – the easy way to your Icinga
OSMC 2021 | Icinga-Installer – the easy way to your Icinga
NETWAYS
 
DCEU 18: Tips and Tricks of the Docker Captains
DCEU 18: Tips and Tricks of the Docker CaptainsDCEU 18: Tips and Tricks of the Docker Captains
DCEU 18: Tips and Tricks of the Docker Captains
Docker, Inc.
 
Ci For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or GalCi For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or Gal
Chad Woolley
 
Introduction to FreeNAS development by John Hixson
Introduction to FreeNAS development by John HixsonIntroduction to FreeNAS development by John Hixson
Introduction to FreeNAS development by John Hixson
iXsystems
 
اسلاید اول جلسه دوم کلاس پایتون برای هکرهای قانونی
اسلاید اول جلسه دوم کلاس پایتون برای هکرهای قانونیاسلاید اول جلسه دوم کلاس پایتون برای هکرهای قانونی
اسلاید اول جلسه دوم کلاس پایتون برای هکرهای قانونی
Mohammad Reza Kamalifard
 
Happy porting x86 application to android
Happy porting x86 application to androidHappy porting x86 application to android
Happy porting x86 application to android
Owen Hsu
 
Ubuntu And Parental Controls
Ubuntu And Parental ControlsUbuntu And Parental Controls
Ubuntu And Parental Controls
jasonholtzapple
 
9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training
videos
 

Similar to Mothra - A FreeBSD send-pr tool for bugzilla system (20)

Touch your NetBSD
Touch your NetBSDTouch your NetBSD
Touch your NetBSD
 
Puppet Camp Berlin 2014 Closing Keynote: Next steps for doing more awesome th...
Puppet Camp Berlin 2014 Closing Keynote: Next steps for doing more awesome th...Puppet Camp Berlin 2014 Closing Keynote: Next steps for doing more awesome th...
Puppet Camp Berlin 2014 Closing Keynote: Next steps for doing more awesome th...
 
Oscar: Rapid Iteration with Vagrant and Puppet Enterprise - PuppetConf 2013
Oscar: Rapid Iteration with Vagrant and Puppet Enterprise - PuppetConf 2013Oscar: Rapid Iteration with Vagrant and Puppet Enterprise - PuppetConf 2013
Oscar: Rapid Iteration with Vagrant and Puppet Enterprise - PuppetConf 2013
 
Bundling Packages and Deploying Applications with RPM
Bundling Packages and Deploying Applications with RPMBundling Packages and Deploying Applications with RPM
Bundling Packages and Deploying Applications with RPM
 
Deploying Foreman in Enterprise Environments
Deploying Foreman in Enterprise EnvironmentsDeploying Foreman in Enterprise Environments
Deploying Foreman in Enterprise Environments
 
DevOpSec_DockerNPodMan-20230220.pdf
DevOpSec_DockerNPodMan-20230220.pdfDevOpSec_DockerNPodMan-20230220.pdf
DevOpSec_DockerNPodMan-20230220.pdf
 
Go profiling introduction
Go profiling introductionGo profiling introduction
Go profiling introduction
 
Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013
 
Os dev tool box
Os dev tool boxOs dev tool box
Os dev tool box
 
Omnibus to the future!
Omnibus to the future!Omnibus to the future!
Omnibus to the future!
 
Python on FreeBSD
Python on FreeBSDPython on FreeBSD
Python on FreeBSD
 
Towards the perfect Drupal Dev Machine
Towards the perfect Drupal Dev MachineTowards the perfect Drupal Dev Machine
Towards the perfect Drupal Dev Machine
 
OSMC 2021 | Icinga-Installer – the easy way to your Icinga
OSMC 2021 | Icinga-Installer – the easy way to your IcingaOSMC 2021 | Icinga-Installer – the easy way to your Icinga
OSMC 2021 | Icinga-Installer – the easy way to your Icinga
 
DCEU 18: Tips and Tricks of the Docker Captains
DCEU 18: Tips and Tricks of the Docker CaptainsDCEU 18: Tips and Tricks of the Docker Captains
DCEU 18: Tips and Tricks of the Docker Captains
 
Ci For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or GalCi For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or Gal
 
Introduction to FreeNAS development by John Hixson
Introduction to FreeNAS development by John HixsonIntroduction to FreeNAS development by John Hixson
Introduction to FreeNAS development by John Hixson
 
اسلاید اول جلسه دوم کلاس پایتون برای هکرهای قانونی
اسلاید اول جلسه دوم کلاس پایتون برای هکرهای قانونیاسلاید اول جلسه دوم کلاس پایتون برای هکرهای قانونی
اسلاید اول جلسه دوم کلاس پایتون برای هکرهای قانونی
 
Happy porting x86 application to android
Happy porting x86 application to androidHappy porting x86 application to android
Happy porting x86 application to android
 
Ubuntu And Parental Controls
Ubuntu And Parental ControlsUbuntu And Parental Controls
Ubuntu And Parental Controls
 
9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training
 

Recently uploaded

UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
TaghreedAltamimi
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 

Recently uploaded (20)

UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 

Mothra - A FreeBSD send-pr tool for bugzilla system

  • 1. Mothra A FreeBSD send-pr tool for bugzilla system Daniel Lin (pct), BSDTW 2017 https://github.com/pct/mothra https://github.com/pct/freebsd_utils
  • 2. Preface When I was 20, I was a journalism student.
  • 3. Preface Because of the School BBS system, I start using FreeBSD. // do you ever make world everyday?
  • 4. Preface Thanks for FreeBSD, I got my first job as a sysadmin. I like the job better than be a reporter.
  • 5. Preface I love FreeBSD so much, want to improve it, then I start learning programming.
  • 6. Preface There are some ports maintained by me: - benchmarks/tsung - devel/rubygem-rodzilla - graphics/p5-Image-ExifTool-devel - sysutils/py-pywatchman - sysutils/py-ranger - sysutils/rsyncrypto - sysutils/rubygem-mothra - sysutils/watchman - www/node (until 2016/4/11, been very busy) - www/phalcon
  • 7. Preface I love to using porttools to send-pr in early years, but FreeBSD using bugzilla to manage PRs for these years, I just could not send-pr from command line as before.
  • 8. Preface I develop a send-pr tool named “Mothra” (to battle bugZilla). // Project since 2014/12/29
  • 10. Normal send-pr flow At normal send-pr flow, you may switch to browser and terminal (ex: www/phalcon): 1. Open Browser, go to https://bugs.freebsd.org, check if there is already a new version update pr. 2. Open terminal, `cd /usr/ports/www/; cp -rpf phalcon phalcon.orig` to save original ports. 3. `cd phalcon`, update Makefile, set PORTVERSION. 4. `make makesum`, to update distinfo file. 5. make port patch files and test.
  • 11. Normal send-pr flow 6. `genplist test` and check pkg-plist file. 7. `genplist clean` 8. `cd ..; diff -ruN phalcon.orig phalcon > phalcon-3.2.5.diff` 9. scp phalcon-3.2.5.diff to your desktop. 10. Back to browser, sign in bugzilla. 11. File a bug: fill complex form, add attachment (phalcon-3.2.5.diff). 12. Submit Bug.
  • 14. Mothra Install: # gem install mothra Get setting example: # curl https://raw.githubusercontent.com/ pct/mothra/master/.mothra.yml > ~/.mothra.yml
  • 15. Mothra Setting (~/.mothra.yml): BZ_URL: https://bugs.freebsd.org/bugzilla/ BZ_USER: test@example.com BZ_PASSWD: test ### IT’S DANGER HERE!!! ### PRODUCT: Ports & Packages COMPONENT: Individual Port(s) STATUS: ['New', 'Open', 'In Progress', 'UNCONFIRMED']
  • 16. Mothra Usage: - mothra search <keyword>, <days_ago=180> - mothra submit <summary>, <file_path> - mothra attach <bug_id>, <file_path> - mothra browse <bug_id> - mothra create <summary> - mothra get <bug_id>
  • 17. Mothra Mothra, with my `up2` scripts, save 12 -> 4 steps: 1. `mothra search phalcon` to check if already a update PR 2. `. up2 www/phalcon 3.2.4 3.2.5`, and check and fix files 3. `diff -ruN phalcon.orig phalcon > phalcon-3.2.5.diff` 4. `mothra submit “[MAINTAINER] www/phalcon update to 3.2.5” phalcon-3.2.5.diff`
  • 18. Mothra Lazy, but save more time to maintain more ports :-) ex: I just send-pr this noon.
  • 19. But… I just know “pgollucci/ freebsd-bugzilla-cli” this week. You could try It also, it seems more functional.
  • 20. One more thing The https://bsdtw.org/ website is designed by my team, 4Point Design. We provide Graphic Design, Printing, Web and iOS/ Android App Design/Develop. Hope to have the opportunity to work with you!
  • 21. Source Code GitHub: - pct/mothra - pct/freebsd_utils (send-pr)