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
Breaking changes in next CRAN update #106
Comments
Basically everything one needs to know is now in the basic examples If you don't see any serious issues and are willing to update your packages, I will |
So thoughtful of you to create this issue. I installed the dev version of snakecase and read the README, the thought that you've put into this is quite impressive! It was fun to learn more about the package. I will summarize my understanding to see if I get this: I reviewed the changes you made to your tests and verified on my own and it looks like the changes to the janitor test outputs are actually making the Will there be other changes to the behavior of |
Regarding timing, feel free to move as fast as you like on this. I'm hoping to submit the version of janitor that depends on snakecase to CRAN around the end of the month. If changes to |
Thanks also for looking into this. I am really happy about this new behaviour and that it also Sounds reasonable to you. If I (or @strengejacke) don‘t encounter any bugs, the last commits will be regarding the consistent behaviour between upper/lower camel and lower_upper, upper_lower. Everything else is just technical, like issues about pkgdown or testcoverage...and of course looking a last time into clean_names implementation. Then CRAN :) and closing here. |
If you choose this option, then sjlabelled needs to be submitted before snakecase, else revdep checks will fail. |
Good point. So it will be deprecated. |
EDIT: Problem is already solved and warning is gone (now idea why). Will submit tomorrow. @strengejacke I am getting a strange warning when running
checking Rd cross-references ... WARNING
I also tried to fix it via specifying the libpath option for
|
I think you should use English locale - when I read "Kreuzreferenzen", I personally would also throw a warning, or even an error. ;-) |
Pls make sure to call variables by name and not by position, since I am relatively sure that I will change the order of the arguments in one of the next updates in a few months. See #117 ...Just to make sure... |
Except for the first argument, I usually always call arguments by name, just for this reason. |
@strengejacke I am not sure where this fits best. However, since whitespaces around non-alphanumerics will be suppressed, you might decide to introduce whitespaces via backreferences (regex) to regarding symbols when it makes sense. For example spaces might be useful around „&“ before „(„ and after „)“ and „:“. Just a thought.... |
Just to notify @sfirke and @strengejacke: the next CRAN update (v 0.9) will come when you give me the go (latest in 2 weeks). The update is currently on devversion-01 branch. Changes:
Afterwards, I will only work on small fixes of the documentation and stuff regarding user feedback. This should then end in v1.0.0 in the next months. |
Just let me say that CRAN team is happy for release cycles with not more than one update per 1-2 months 😉 |
Thanks for the heads up. When will you move from devversion-01 to master branch on GitHub for this version? I'll start working from v0.9 and get ready for it. |
I will switch to master before going to CRAN (in 1 or 2 month now ;-). In this way master and CRAN docu will be in Sync. Or would you prefer if I directly switch to master branch now? |
My approach has been to move development features to master branch when
they're stable, well before submitting to CRAN, so that people are more
likely to test them and give feedback. I don't know if that's standard
best practice or not.
…On Mon, Jan 29, 2018 at 3:03 PM, Tazinho ***@***.***> wrote:
I will switch to master before going to CRAN (in 1 or 2 month now ;-). In
this way master and CRAN docu will be in Sync. Or would you prefer if I
directly switch to master branch now?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#106 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AHOBkNO7VLYLprNCMXzhyCJCkY_qie9Xks5tPiP5gaJpZM4RSLxM>
.
|
I think this is the optimal approach. It just felt a bit strange to me to have very small and subtile breaking changes (like changing |
Just to be sure: this should work in a future update of snakecase w/o problems?
|
Works. Here also a quick check
|
Yes, it currently works. I was just wondering if it will work with your future plans for snakecase, because I want to submit my update the next days and would like to avoid another submission just some days later just because I forgot something related to forthcoming snakecase changes. ;-) |
Yes, it will work. I will wait a longer time now to see if there should be changes regarding the interface, but I currently think that the package is stable and there won't be any within the next months for sure. |
Ok, sjlabelled update is on CRAN, so you can go ahead from my site. |
hi @Tazinho, I merged into janitor/master my branch that relies on the dev version of snakecase, and updated my .travis.yml file to use the dev version of snakecase from github so that my tests pass. I'm done changing things that rely on snakecase and my ideal process would be for the latest snakecase changes above (where parsing option 4 is the old parsing option 6) to go to CRAN before janitor 1.0. So anytime you want to submit is great with me if you're ready. Parsing option 4 was great, I wrote some regexes and didn't end up using them 😃 That option did exactly what I wanted to and it would have been hard for me to implement without snakecase. |
Malte, when do you think this version of snakecase with parsing option 4 being the old parsing option 6 will go to CRAN? |
I can go when you want. But I also wanted to ask you and @strengejacke if you have a better idea for the parsing_option Argument. I think it looks strange for the user and it’s the only part of the pkg that I am not happy about... |
Maybe more descriptive variable name then parsing_option? And the numbers
don't have meaning themselves, so if you could describe them with a brief
string instead, that might be preferable.
|
That would definitely be an upgrade to the current way. I was also thinking to split the current parsing options into 3 different argumentes like: Parsing_logic (1 vs 2), Conversion_logic (1 vs 3), Numerals_logic (1 vs 4) with named options, which would make it easier to specify an arbitraty combination, but more verbose than the other option... I am going to wait, to see if more issues regarding parsing, conversion, numerals etc. will come up and try to find a good solution then. However, here should be closed for a relatively long period now :) Thanks to both of you for your patience...and have a nice weekend. |
I see it's on CRAN now! 🎉 |
Hi Daniel, hi Sam (@strengejacke , @sfirke)
in the next CRAN update will be breaking changes.
These changes are relatively small for you, but I guess that at least the 2nd one is very important for the simplification of the snakecase pkg.
Particularly these changes include:
parsingoption
inparsing_option
Therefore I will also
protect
, setprotect = "_(?![:alnum:])|(?<![:alnum:])_"
as the new default and remove this argument later from the package. (I tend to use this option to make a smoother change)protect
directly from the interface.Practically his means, that "_" will be removed when it is around a non alpha-numeric character. For example there won't be things like "sepal_._length" or "malte_._grosser_@_gmail_._com" as artifacts in the output anymore. They will be just "sepal.length" or "malte.grosser@gmail.com" (if neither "\\." nor "@" is in the
preprocess
argument).Internally this happens before the "postprocessing" starts so these artifacts also won't occur, if anything else than "_" is supplied to the
postprocess
argument.For example
Therefore also behaviour in the
janitor::clean_names()
function will be affected. However, the implementation can stay the same, as neitherprotect
norparsingoption
are explicitly called in the code. In my opinion, this new behaviour is far better.JANITOR
However, two of the tests in janitor will fail after the update, so I will change these tests on the snakecase side and I recommend to do this also on the janitor side:
SJLABELLED
As far as I know the protect option is used within sjlabelled here.
I would recommend to remove this option after the snakecase update from the code. I am not sure if the snakecase function is used anywhere else in the sj-universe, but of course there should apply the same.
If you have any issues regarding these updates or will have any user feedback/critics in the future about this, pls let me know.
Cheers,
Malte
The text was updated successfully, but these errors were encountered: