Maslow Home Maslow Community Garden Newsletter

WebControl Collaboration

It seems we have people that are contributing PRs and with a recent change in my work status (as well as lots of other things) I don’t have nearly as much free time as I have had in the past. I’d really like to not be a bottleneck for webcontrol. I like using github, but I’m not an expert at it. What’s the best way of getting things moving where, if someone or some people are inclined, are able to manage things if I’m not moving quick enough? I see there’s a github organization option… does that make sense?

1 Like

There’s a few things. Adding other people who can review and approve PRs would be a start.
It’s good to think about management of branches and releases and having a basic strategy for this that everyone can follow.
In general a branch per issue. And a decision about when certain branches get merged back into the main branch for the next release. With master being updated after each ‘official’ (whatever that is) release.

And a simple roadmap helps.
It sets a direction, gives a shared understanding of roughly “what’s next”, and by implication priorities, but it also allows people to still contribute interesting things that we can “get to along the way”.

So, would a GitHub organization facilitate all of that?

Thanks for the invitation. I would like to be a part of this, but I am super new at github. I am happy to help with new code testing and adding new features.

I created a webcontrolcnc organization… I’ll add you to that as well. I think I can give more people more control through an organization.

I’d be interested in helping out. I’m more of a front-end developer; my main language is Javascript, but I’ve been looking for an excuse to learn about Python backends.

1 Like

Ive noticed some of your posts… please be gentle when you look at the code (I’m not a professional developer and webcontrol was my first python program and foray into JavaScript/websockets frontend). If you have a GitHub handle (assume you do) post it here and I can add you to the org.

1 Like

It’s the same as my name here, emilecantin. And don’t worry, everybody writes what code they can, just shipping working software that people actually use is impressive in its own right.

I’ll stick my hand up as well - md8n - I write Python commercially, and Javascript / Typescript, and C#, and … whatever …
PS. I am a fan of Python as a language with a large community, and therefore a way to ‘attract’ further people to assist with development. But it’s not a great language on constrained devices, because it’s such a hog. So having a map of which parts of the system are performance critical and doing these in some other language (that people still want to explore), but leaving most of it in Python is something I’ve seen done before, and been involved with.

I think the only part needing optimization is the gcode load/processing… the method in webcontrol is a copy of what’s in ground control with a bunch of mods/additions. I never tried to change how it worked to make it faster. I think everything else runs well as there’s not much to sending gcode over a serial link.

please add me as well (davidelang)

A roadmap works if you can assign things to people, or if you are actively
working on something and want to avoid duplicating effort (although I would
argue that for the latter, get a minimum viable change in and iterate in public)

we don’t have anything like that, at most we have enhancement requests that
people have posted in the issues.

The biggest way to keep WC moving is to add to the number of people who can
merge/release

David Lang

I agree. That was the reason for creating the github organization. I couldn’t find a way to do it in my personal repo.

@madgrizzle I’m looking at the way you created the new repo, and I see a problem: You didn’t transfer the issues, and arguably worse, you didn’t transfer the commit history. (Not a criticism, just a “raised flag”, BTW)

A better way to do this would be to go in the original repo’s settings (https://github.com/madgrizzle/WebControl/settings), and in the “danger zone” at the bottom, use “Transfer ownership” to move the repo to the new organization. That way, issues, pull requests and commit history will be preserved.

You will probably have to delete or rename the new repo first, though.

Oh, and just a small other thing: you should probably add people to the organization, not a specific repo. That way, if we end up with multiple projects under the WebControl umbrella, we won’t have to re-add everyone.

Thanks! Things I didn’t know about. If I transfer the repo, it leaves my repo, correct? (i.e., doesn’t make a copy) If so, I think that will break the update process in webcontrol since it looks for my repo. So, what would be the best way to handle this? Transfer the repo and then I create a new repo with a single release that points the upgrade process to the new repo?

You could do that, but I think the easiest way for now would simply be to fork the moved repo in your personal account after you’ve moved it. It takes only a few seconds, so the update process would only be “broken” for a very short time, which is very unlikely to impact users right now.

Altough I’m not sure how your upgrade process works. Is it just a “git clone”? If so, it should work automatically with a fork. If it downloads a release tarball, then it might be more involved than that. I’ll have some time to look into it this afternoon (East coast time) if needed.

It’s just one line of code that needs to be changed to point to the new repo:

g = Github()
repo = g.get_repo("madgrizzle/WebControl")

So the plan is to transfer the repo, fork it, modify the code to point to the proper repo, build the releases, and upload them into my fork.

Sound right?

Yes, I believe that should work.

1 Like