-
-
Notifications
You must be signed in to change notification settings - Fork 39.1k
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
Overhaul modifier handling system #277
Conversation
So you're holding off on this one too? |
Yeap! This goes even deeper into the codebase. Plus it modifies @ezuk's stuff, so I'd like to let him take a look at things. |
Eric: since your PRs run in depth, they should come with automated tests. On Sat, Apr 23, 2016, 07:27 Jack Humbert notifications@github.com wrote:
|
@ezuk I've never heard of this kind of test before. How exactly should I go about making them? What exactly is their purpose? I've been using this code in my keyboard for many months without issue. |
If you could also outline the differences between this and the current implementation (pros/cons of each), that'll help us decide if it's appropriate. |
What's still not clear? I thought I explained it pretty well in the issue. |
The tldr for me is that I have to be confident you're not breaking other You open PRs and take them back, change things all over the place, and it Hence my insistence on automated test coverage. And I'd like you to take A text would show the syntax used in a keymap (e.g LCTL) and that it still On Sat, Apr 23, 2016, 14:46 Eric Tang notifications@github.com wrote:
|
Well, I'm only changing the other ones because @jackhumbert is not going to merge them later. This one hasn't changed much at all. I've never done this kind of test before and I'm gonna have to learn a bit in order to do one. As I already mentioned, I've been using this in my keyboard for months without issue. Is that not enough? Would it be okay if I described the old and new behaviors in detail like @jackhumbert recommended? |
The fact that a given change doesn't break your personal keymap is wonderful. However, that doesn't mean it won't break other people's work -- there are many ways to use QMK. Thoroughly describing your work is key of course - that should come as part of the PR description (that's why it's there), and as comments in the code (though too many comments mean your code doesn't speak for itself, which is a problem). That is not a replacement for having automated tests. I recognize this isn't something we've done so far, but that's also because most changes so far have been incremental and fairly conservative. I love the verve and energy with which you approach the project -- it just means we're leveling up. Part of this needs to be introducing those tests -- it goes with refactoring any legacy codebase, essential to making sure you're not breaking stuff. Here are a few links that may help: |
@jackhumbert @ezuk This testing stuff is little overwhelming to me. Do you know if another community member might have the know-how to run them? |
@eltang I don't know of another community member who set out to change things in the scope you're looking to change. That's wonderfully ambitious -- but the responsibility for writing the tests lies with whoever changes the code. :) Otherwise we find ourselves in the position of approaching someone and telling them, "Eric wants to change a bunch of things, can you please write tests to make sure his changes don't break what's working?" That's a tad awkward. :) |
The thing is, when something breaks we don't always know why. Bugs can manifest in surprising ways. It can be hard to track down an issue to your commit, and not everybody can use
How does that sound? |
Also, please see https://github.com/buserror/simavr - can help with testing. |
He won't have permission to do that. There's nothing wrong with making a branch in his own QMK fork and having discussion about it here. Once it's ready, he can make a pull request from that branch to this repo's master branch. |
@NoahAndrews - Eric specifically wanted to contribute to this repo, which is why I mentioned this. We can make the branch for him if he chooses to go this route :) |
@ezuk The smoke test will be done using this script, correct? |
@ezuk Except he wouldn't be able to push to it without becoming a full collaborator. |
@eltang That script only checks against the Ergodox EZ keymaps. |
@NoahAndrews How do I test the other ones, if needed? |
@eltang Perhaps write similar scripts for other keyboards. |
@ezuk Also, what exactly should I be testing in my tests? That's not too clear to me, especially because this PR does not simply refactor the code. |
See #272 for a detailed description of the changes.