-
-
Notifications
You must be signed in to change notification settings - Fork 104
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
tradestatistics package #274
Comments
👋 @pachamaltese! Thanks for your submission! Can you confirm the package and underlying data source are mature enough for review? |
@maelle Hi!! Yes, I added all the feedback from the previous package and I extended it to obtain data from different tables provided I built my own tailored API |
@maelle Hi! sorry, I totally forgot to mention that the ROpenSci badge that I added should get another numeral provided 217 is for the older package |
Editor checks:
Editor commentsThanks for your submission! I'm now looking for reviewers. Below are a few comments/questions. In the README please write GPL3 licence to be more specific. Is it necessary for the repo to be a fork? Or can you at least add an issue tracker to it? Could you fix the example in Also note that when transferring it to the ropensci GitHub organization, it'll need to have the same name as the package. Please update the review badge, the number in it should be the issue number, 274. Why is there a CRAN link in DESCRIPTION given the package has not been released on CRAN? By the way please do not submit the package to CRAN before the end of the review process. There's no example after the sentence "Here’s a basic example to obtain bilateral trade between Chile and Argentina in the year 2000 under different trade classifications:" in the README. Here's the output from
Typos
Reviewers-: @emilyriederer @mpadge |
Thanks a lot @maelle Here's my checklist
the only thing I cannot reproduce are the UTF-8 warnings I created a new repo https://github.com/tradestatistics/tradestatistics Thanks a lot !!!! All the best! |
Hi @maelle
|
@pachamaltese I've just re-run R CMD Check but not via |
@emilyriederer @mpadge thanks for accepting to review this package! 😺 Your reviews are due on 2019-01-28. As a reminder here are our reviewer guide and review template. |
Package Review
DocumentationThe package includes all the following forms of documentation:
Functionality
Final approval (post-review)
Estimated hours spent reviewing: 6 hours Review CommentsI enjoyed reviewing the Below I've highlighted some observations that might make this package even better. Many of the items and small (and some arguably immaterial), but I chose to log everything I encountered in the review in case it would be useful. DocumentationOverall, the documentation of the package is clear. I had no major problems understanding the goal it is meant to achieve, the scope of features it offers, and successfully writing and running the functions. However, here are a few opportunities I found to make the documentation even more accessible: Package Metadata
Package Documentation
Vignettes
Function Documentation
Functionality / ImplementationExternal Dependencies Section 1.11 of rOpenSci's packaging guides reinforces the good practice of trying to limit external dependencies where possible. This is a good practice not only for the health and longevity of your package but also for marketing purposes; sometimes people working on servers or behind proxies will have limited ability to install packages so fewer dependencies may enable more users. I think there are some opportunities to reduce dependencies in this package. I truly don't mean to pick on tidyverse packages here! I also really enjoy writing (and reading) code this way. However, for package internals, I try to lean more heavily on dependency-free base R alternatives if I am only using relatively small numbers of less-differentiated functions from these packages. I realize this is also a personal style issue so I hope I'm not overstepping! Just throwing out alternatives for consideration.
As an example, here's an alternative implementation of Initial
Final
The code for Readability / Modularity
Technical Implementation Details
Testing
API Design / UI ImprovementsFunctions, Parameters, and Return Values
Error Messages
|
@emilyriederer Thanks a lot for this huge review!! I have a lot of homework now |
@pachamaltese Thanks for the package! It was very fun to play with. I hope it's helpful, and sorry for the length! All of the items are really small, and some I debated if they were worth mentioning. Personally, my struggle is always with not enough feedback, so I thought I'd share all my thoughts and you could do with them what you will 😄 |
Many thanks for your thorough review @emilyriederer! 😸 |
Package ReviewPlease check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide
DocumentationThe package includes all the following forms of documentation:
For packages co-submitting to JOSS
The package contains a
Functionality
Final approval (post-review)
Estimated hours spent reviewing: Review CommentsMuch of the current review does little more than reiterate the phenomenally detailed review of @emilyriederer, to whom I am also indebted for saving me much of the work, and for giving me a very helpful overview of the package! One of my motivations in reviewing this pacakge was to gain hands-on insight into how @pachamaltese had overcome the server-side problems that plagued the previous review process. The solution is amazingly impressive, and the documentation provided on the (An immediate example is the central table of data nomenclature and availability which is so clear and simple that it could be helpfully reproduced in the documentation for the R package.) One other general comment, again and as always as already indicated by @emilyriederer, concerns the names of data sets and functions, which it seems fair to suggest are too general, and would be better with, for example, package-specific prefixes (see below). In this regard, I note that the whole
General styleTo continue on the above point, the names of functions and internal data sets are arguably somewhat overly generic, as is much of the function documentation. @pachamaltese would be advised to keep in mind that this package may be loaded in a workspace with many other packages, and Function names suffer similar lack of specificity, as already emphasised by @emilyriederer. For example, READMEWhile I concur with the sentiments of @emilyriederer that the diagram at the outset of the README is uniquely cool, I note that most of the text is a pasted GPL-3 license which is bundled with R and so strictly not needed there. Github repos are a separate issue, and Best Practice currently states,
Best Practice is nevertheless an optional system, and it would suffice simply to delete the GPL-3 text from README in order to free it up to contain the useful package-related stuff everybody will expect. get_countrycode()While noting @emilyriederer's comment regarding default
In her words, the package "does not explain how NULL values are treated." Moreover, the following call actually returns an object:
This is because
(See comment below for why the result shown on screen is then actually empty.) There are lots of possibilities for handling such cases, and I'm sure @pachamaltese is capable of implementing any sensible option, but I mention this as an incentive to implement a bit more thorough pre-checking of parameter types and classes. (At least ensure argument is stripped to alpha characters only and error on anything else such as numeric.) Another example:
That message is misleading because there is actually only one match, contrary to the message. As with the above mismatches of "1" onto years of name changes, this is also a mismatch of "par" onto
.. and "par" matches on to the protracted and irrelevant "several reporters/partners ..." detail for "All Countries". The "All Countries" is then filtered from the screen dump because that filters Also note that there will likely be workflows desiring multiple matches. This currently works, which is good:
but still issues the message, which is undesirable if I actually want all of those. That will be important to keep in mind when converting from And because we're here, I repeat the concerns of @emilyriederer, via here example for
while a base R equivalent in this case is actually much clearer and simpler:
Finally, I suspect issuing a get_productcodeI note some potential confusion in the overlap between the I'd also see a use for string matching on I also don't see any specific need to append the column with the search term to the return result, although grant that may be just a reflection of my ignorance here? Nevertheless, the presence of "group_name" seems to provide an "official" classification of "type_product", and so render this redundant. get_dataMy main concern here is precisely that of @emilyriederer, and worth quoting:
My even stronger assertion would be that there would be very few users whose workflow would not be
but then if that's to be done, the logical and full extension may as well be implemented,
(Because you'll likely be using base R rather than To again paraphrase @emilyriederer, in the absence of such filtering ability, it's hard to argue the value of Miscellaneous
ChecklistTo aid @pachamaltese, this condenses (i think) most of the above points into a simpler checklist. Items with (O) are those I am happy to consider optional and leave the ultimate decision to @pachamaltese.
Thanks to @maelle and @pachamaltese for the opportunity to review this package, which has been a great pleasure! It is obviously the result of a phenomenal amount of work culminating in |
Many thanks for your review @mpadge! 🚀 @pachamaltese, now both reviews are in! 🎉 |
Thanks a lot @maelle , @emilyriederer and @mpadge Does it work? What do you think about adding a commodity group filtering option to the API and then completing that nice to-do list from above? |
Hi @mpadge Once again, thanks a lot for the useful list. Another new filtering option in the API is that any table with commodity column (the With these changes I can start improving the package |
That's fantastic, @pachamaltese, and obviously a way more efficient solution than post-filtering. This review is become more and more interesting, with your ability to make server-side changes and then update R code. And all that "during lunch time" 🍽️ |
|
@mpadge Really enjoyed reading your review! I really enjoyed hearing how you thought through it. Very interesting to see where we were aligned or to hear your perspective on the few places we differed. In particular, I do see your point on the @pachamaltese I think I somehow missed the full context when I wrote my review that you seem to completely own the API? That's awesome! Very psyched you were able to add filtering by commodity, as this will probably majorly simplify things for users. |
Hi Maelle
No, I completed all of the steps listed above.
…On Wed, Mar 27, 2019, 8:16 AM Maëlle Salmon ***@***.***> wrote:
👋 @pachamaltese <https://github.com/pachamaltese>! Are you still making
changes in response to the reviews or are you done?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#274 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AJn6OUStZluKOm_TszDvhlW-d1NDqsjzks5va1MBgaJpZM4Zoxjl>
.
|
Ok! @emilyriederer @mpadge, if you're happy with the changes implemented, can you check the box "The author has responded to my review and made changes to my satisfaction. I recommend approving this package." in your reviews? Thanks to all of you for a very active and productive discussion in this thread! |
@emilyriederer @mpadge |
Box is checked on my end! Thanks, @pachamaltese , for such an cool API and package! You make me want a reason to need trade data so I can play with this even more 😄 |
Thanks a lot @emilyriederer !! Your feedback gave me tons of ideas I'd never figured myself. Now I'm working in a "GUI" (a shiny dashboard) for the package. I shall release a beta later today. |
@maelle @emilyriederer @mpadge can you help me sharing this dashboard that is basically a GUI for the package? https://shiny.tradestatistics.io/ |
Completed above and copied here for completeness: Final approval (post-review)
I've sent a very minor pull request of the only outstanding issue. Thanks so much @pachamaltese for the amazing work behind the scenes with your own server, and for the seamless package interface. I'll definitely be using this package! |
@mpadge thanks a lot!! I passed that point somewhere in the middle of the thread. I just rebuilt both vignettes and pkgdown site with your changes to the ots_create_tidy_data Rd section |
Approved! Thanks @pachamaltese for submitting and @emilyriederer @mpadge for your reviews! 😸 To-dos:
Should you want to awknowledge your reviewers in your package DESCRIPTION, you can do so by making them Welcome aboard! We'd also love a blog post about your package, either a short-form intro to it (https://ropensci.org/tech-notes/) or long-form post with more narrative about its development. (https://ropensci.org/blog/). If you are interested, @stefaniebutland will be in touch about content and timing. We've started putting together a gitbook with our best practice and tips, this chapter starts the 3d section that's about guidance for after onboarding. Please tell us what could be improved, the corresponding repo is here. |
Dear @maelle I've completed these steps:
Important questions before moving the repository:
|
I don't see your repo under the ropensci org, are you sure you've transferred it? |
Yes to keeping previous contributors over time, and regarding reviewers, you should ask them 😉 |
@emilyriederer @mpadge are you ok with being added as ctb for all the feedback? |
@maelle not yet, I am clearing ctb before pushing again before moving the repository
|
@maelle ready, repository is transferred |
@maelle The only thing I cannot change is the repo description in github: |
I also can't change "R package to access our API" to "R package to access Open Trade Statistics API" since the repo has moved |
@pachamaltese now you're admin again 😁 |
Speaking of |
Wow, thank you @pachamaltese ! I don't really feel that I deserve to be considered a |
By the way @pachamaltese we recommend the role "rev" for reviewers since it's more specific than "ctb". Folks can also be both, of course. To easily add folks to DESCRIPTION I recommend e.g. |
By the way @pachamaltese we recommend the role "rev" for reviewers since it's more specific than "ctb". Folks can also be both, of course. To easily add folks to DESCRIPTION I recommend e.g. |
thanks @maelle !!
but comment is limited to a single string, probably I can create a PR to ease that |
Something like desc::desc_add_author(given = "Mark",
family = "Padgham",
role = "rev",
comment = "blabla", orcid = "orcidid") works although the comment section looks ugly. |
Thanks @pachamaltese for adding my name - much appreciated! You've done an amazing job with the package. I'm looking forward to reading about it in the rOpenSci blog. |
Hi @stefaniebutland ! Of course I'd like to write a long-form post. My email is mvargas@dcc.uchile.cl and I'm also in ROpenSci slack to be contacted.
|
Great to hear! I'll follow up by email |
Submitting Author: Pachá (@pachamaltese)
Repository: https://github.com/tradestatistics/tradestatistics
Version submitted: 0.1
Editor: @maelle
Reviewer 1: TBD
Reviewer 2: TBD
Archive: TBD
Version accepted: TBD
Scope
Please indicate which category or categories from our package fit policies this package falls under: (Please check an appropriate box below. If you are unsure, we suggest you make a pre-submission inquiry.):
Explain how the and why the package falls under these categories (briefly, 1-2 sentences):
Because the package connects to an API and does API calls to simplify things for the final user who wants imports/exports and some metrics such as % of increase/decrease.
Non-expert users that use international trade data. This can also be targeted to intermediate/advanced users who can benefit from the speed and short syntax that this package provides.
No, this is made for a new data project
No.
Technical checks
Confirm each of the following by checking the box. This package:
Publication options
JOSS Options
paper.md
matching JOSS's requirements with a high-level description in the package root or ininst/
.MEE Options
Code of conduct
The text was updated successfully, but these errors were encountered: