More Tips for Managing a Fast-Growing Open Source Project
Drudge Bot last edited by
Matt Butcher provides tips for managing open source projects based on experience with Kubernetes Helm.
As open source technology has become more strategically important for organizations everywhere, many tech workers are choosing to or being asked to build out and oversee their own open source projects. From Google, to Netflix to Facebook, companies are also releasing their open source creations to the community. These efforts require more management than may seem apparent at first, and there is also a particular kind of :undefined:“:undefined:nice problem to have:undefined:”:undefined: that can arise. Specifically, a new open source project can suddenly take on a life of its own, growing far faster than ever imagined.
That nice problem to have was the subject of an Open Source Summit 2017 session presented by Matt Butcher, Principal Software Development Engineer at Microsoft. We covered some of hisadvice for open source projects in a previous post. And, here, we discuss specific project management issues Butcher has faced.
In his talk, Butcher cited examples from theKubernetes Helm project, which grew to involve hundreds of contributors and thousands of active users in a span of 18 months:undefined:…:undefined:
Minefields and sparring matches
One thing Butcher and his collaborators on the Helm project learned is that managing governance and standards is an ongoing challenge. They also learned that code reviews can become :undefined:“:undefined:minefields of interaction,:undefined:”:undefined: where community members may have unexpected motives behind their messages. :undefined:“:undefined:I have been involved in situations where code reviews become a sparring match,:undefined:”:undefined: said Butcher.
:undefined:“:undefined:With Helm, we developed guidelines for them. They can develop in such a way that some people will just want to weigh in and show that they:undefined:’:undefined:re right. In some cases it:undefined:’:undefined:s very important to acknowledge contributions We actually have an internal rule in our core maintainers guide that says, :undefined:‘:undefined:Make sure that at least one comment that you leave on a code review, if you:undefined:’:undefined:re asking for changes, is a positive one. It sounds really juvenile, right? But it serves a specific purpose. It lets somebody know, :undefined:‘:undefined:I acknowledge that you just made a gift of your time and your resources,:undefined:”:undefined: he said.
Butcher also noted that team dynamics can change quickly as internal focus shifts to external focus. :undefined:“:undefined:At some point you:undefined:’:undefined:re going to release your project out into the wild, and then you:undefined:’:undefined:ll hit your stability marker, which might be, say, your version 1.0,:undefined:”:undefined: he said. :undefined:“:undefined:At that point your perspective changes and you say, :undefined:‘:undefined:Hey, instead of huddling together to work on our team dynamics, we:undefined:’:undefined:re all going to face outward. That can be a touchy border to be on.:undefined:”:undefined:
In the case of Helm, team members reached out in unexpected ways during the early growth phase. :undefined:“:undefined:We did some crazy stuff when we were launching it,:undefined:”:undefined: Butcher said. :undefined:“:undefined:We actually had kind of an internal semi-formal policy that you would pair with people who came in and had big problems, which resulted in random people from the team joining meetings with people they:undefined:’:undefined:d never met and saying, :undefined:‘:undefined:Hey, tell me about your problem and let me see if I can help.:undefined:’:undefined: The whole point of this was to try and actively pull people into the community and get them engaged right away.:undefined:”:undefined:
Timelines are guidelines
Butcher stressed that project managers should :undefined:“:undefined:know what they:undefined:’:undefined:re building and be ruthless about sticking to it.:undefined:”:undefined: That means, in some cases, that timelines are guidelines. :undefined:“:undefined:You want to commit to timelines, because that:undefined:’:undefined:s respectful to the community,:undefined:”:undefined: he said. :undefined:“:undefined:On the flip side, you also are trying to keep your core contributors motivated. You don:undefined:’:undefined:t want them to feel undue pressure. In many cases the community understands that you are at the liberty of the contributors and sometimes something does come up. At times, we had to go back to the community and say, :undefined:‘:undefined:we couldn:undefined:’:undefined:t do it because the Kubernetes team isn:undefined:’:undefined:t ready for us yet, so we:undefined:’:undefined:re going to have to wait a little while.:undefined:”:undefined:
You can learn more about open source project management inThe Linux Foundation:undefined:’:undefined:s growing collection of Open Source Guides for the Enterprise. These free online guides cover starting an open source project, improving your open source impact, participating in open source communities, and more.
Share your knowledge and expertise atOpen Source Summit North America, happening August 29-31 in Vancouver BC. Proposals are being accepted through April 29th.
The postMore Tips for Managing a Fast-Growing Open Source Project appeared first onThe Linux Foundation.
Make ISO from DVD
In this case I had an OS install disk which was required to be on a virtual node with no optical drive, so I needed to transfer an image to the server to create a VM
Find out which device the DVD is:lsblk
Output:NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465.8G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 464.8G 0 part ├─centos-root 253:0 0 50G 0 lvm / ├─centos-swap 253:1 0 11.8G 0 lvm [SWAP] └─centos-home 253:2 0 403G 0 lvm /home sdb 8:16 1 14.5G 0 disk /mnt sr0 11:0 1 4.1G 0 rom /run/media/rick/CCSA_X64FRE_EN-US_DV5
Therefore /dev/sr0 is the location , or disk to be made into an ISO
I prefer simplicity, and sometimes deal with the fallout after the fact, however Ive repeated this countless times with success.dd if=/dev/sr0 of=win10.iso
Where if=Input file and of=output file
I chill out and do something else while the image is being copied/created, and the final output:8555456+0 records in 8555456+0 records out 4380393472 bytes (4.4 GB) copied, 331.937 s, 13.2 MB/s
Recreate postrgresql database template encode to ASCIIUPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1';
Now we can drop it:DROP DATABASE template1;
Create database from template0, with a new default encoding:CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UNICODE'; UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1'; \c template1 VACUUM FREEZE;