Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

from Construct developer, a note #222

Closed
arekbulski opened this issue Feb 14, 2018 · 13 comments
Closed

from Construct developer, a note #222

arekbulski opened this issue Feb 14, 2018 · 13 comments

Comments

@arekbulski
Copy link
Contributor

I am the developer of Construct (a parsing library) since I took over the project 2 years ago. Please refer any other projects that also use this library to this post, or copy it over to them.

Construct is undergoing heavy changes at the moment, similar to those between 2.5->2.8, including addition of compiler feature (to make it much faster than Kaitai), but also several classes are going to be removed (for a good reason), and also few were added. API will be unstable for about a month.

What you can do:

  • All scheduled work is posted as tickets, in Issues and also on Kanban page. If you subscribe (watch repository) then you will have advance notice of any incoming changes. Unfortunately those tickets also include minor work items, so you would get some clutter notifications too. I appologise for that.
  • I encourage everyone to browse those tickets, vote for feature requests, but also post objections for planned removal of features, or changes in semantics. Subscribing therefore is recommended.
  • You can find what was already changed (at any moment) on Transition page, which is like a growing changelog. It gets updated whenever something gets added or removed, but since the order is not chronological, new items do not end up on top or bottom of the list.
  • You can find currently available classes and semantics on revamped Core API pages. Those pages are very extensive and always uptodate with the implementation.
  • Feel free, at any point in time, to open a new Issue and ask questions or make complaints about breakage. At minimum, I can offer advice and possible alternatives. People very often use the classes in ways that were not designed for, like use String classes to process Bytes.
  • Feel free, at any point in time, to open a new Issue and request changes. If you need a new class, and make a good clear case, I would be more than willing to add it to core library to support your project.
  • API should be stable within a month, so either do version pinning and deal with it then, or keep fixing your code at every release (which is ~3 day cycle at the moment).

Close this topic at your discretion.

@arekbulski
Copy link
Contributor Author

Could you grant me write access so I could work on patches on local branches?

@rytilahti
Copy link
Owner

PRs fixing issues & improving things are very welcome. We use that as a mechanism to allow easier code reviews & pre-commit QA to keep everyone involved in a loop.

@arekbulski
Copy link
Contributor Author

I am going to use PRs but its a pain in the butt to pull from forked repository. Much easier to work on local side-branch when doing PRs.

@yawor
Copy link
Contributor

yawor commented Feb 15, 2018

I've added this repo as "upstream" remote and then configured my local master branch to use it by default (git config branch.master.remote upstream).

@arekbulski
Copy link
Contributor Author

How can I make this repo "upstream", thats a different command, right?

@yawor
Copy link
Contributor

yawor commented Feb 15, 2018

If you have a local clone of your python-miio fork on github, then:

git remote add upstream https://github.com/rytilahti/python-miio.git
git config branch.master.remote upstream

then

git checkout master
git pull

should pull master branch from this repository to your local master branch by default.
You can always force specific remote:

git pull origin master
git pull upstream master

Of course the name "upstream" can be anything you want. It's just a name. I like "upstream" as it clearly describe what it is.

@arekbulski
Copy link
Contributor Author

How does git pull --all fit in this picture?

@yawor
Copy link
Contributor

yawor commented Feb 15, 2018

My local repo is up to date, so it's hard to tell but:

% git pull --all
Fetching origin
Fetching upstream
Already up to date.

@arekbulski
Copy link
Contributor Author

Thats very helpful, thanks. I used to just delete the fork repo and re-fork it. 😕

@yawor
Copy link
Contributor

yawor commented Feb 15, 2018

You need to remember though that this will not automatically keep your github fork's master branch up to date. It just point your local branch to pull from this repo by default. If, for some reason, you want to also keep your origin/master up to date, then after pulling from here, you need to run:

git checkout master
git push origin master

But I think this is not really necessary.

@arekbulski
Copy link
Contributor Author

Thanks again for the tutorial @yawor . I learned something useful.

@arekbulski
Copy link
Contributor Author

arekbulski commented Feb 22, 2018

I am having problems with using upstream branch, could you just give me write access? I have 2 more PRs to be added, and the idea of reforking repo each time seems just dull.

Well, maybe this would work: https://stackoverflow.com/a/9646323/2375119
I need to point out tha I would grasp what that script does without @yawor , so much thanks.

@rytilahti
Copy link
Owner

Hi, and sorry for not getting back before. In generally there is only do a fork once (you can always use branches for different PRs), and just keep it up to date with with the upstream. Homeassistant's guide is pretty much what I do for all the repositories I contribute (although the branch is usually master and not dev): https://home-assistant.io/developers/development_catching_up/ .

As you have probably also noticed I do not usually write into this repo directly either, but more or less everything goes through the PR process and I'm not very eager giving write access just for doing contributions, no offence.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants