Painful process to upload extension


#1

I’ve accepted that the Sketchup API is a bit of a mess, with undefined behaviors and inadequate documentation. But the process of submitting a plugin is completely ridiculous. Why not PROVIDE a configuration for rubocop so I can verify my code instead of submit, wait a day, fix the first problem. Submit, wait a day, fix the next problem. Oops, some regression from git merge, submit, wait another day… I get an email from the auto-reply robot, with a link supposedly to the plugin I’ve submitted. Click the link to download the “rbz” I uploaded, and it says “Unauthorized”. Yes, I’m logged in. Meanwhile the link that supposedly shows the state of my submission, like http://extensions.sketchup.com/user//content is always empty.


#2

You can run TestUp2 yourself to check the code. If I’m not mistaking this is what is used internally at SketchUp. I think there are a few manual tests still that aren’t covered by it but I’m not sure. It would help though if TestUp was mentioned in the Extension Warehosue Developer Center as an optional tool for checking extensions, or maybe even in the error messages.

Regarding the submission list I suspect it was removed due to an issue when re-submitting extensions before the automatic review had finished. They used to appear in your content list (extensions.sketchup.com/en/user//content) with a reddish tint so you could easily distinguish them from live extensions. However they haven’t been available in the list for some time now. Previously if you re-submitted during the review, e.g. because you found an error yourself, you could set fire to the inner dark sorcery of extension warehouse and have your extension rejected with unintelligible error messages. I suspect the list was changed as a workaround instead of fixing the underlying issue with the reviewer.

Maybe @thomthom knows more?


#3

Thanks! I’ll look at TestUp2, it seems potentially like exactly what I was looking for.


#4

I feel your pain Marvin. The Extension Review process is a challenge on our end as well. The current iteration of EW stems from the Trimble acquisition. It’s difficult to maintain, but we’re working on a new version that will make things a lot better.

That’s one of the things that we’ve been working on. The new version of EW will run a custom set of RuboCop rules automatically. It still a work in progress, but you can in fact try them out right now: https://github.com/SketchUp/rubocop-sketchup
(Note that the current version is a pre-release version so you need to append --pre to install the gem.)

Hmm… Can you post a screenshot of what you observe?

TestUp is just a UI wrapper on top of Minitest. It does’t do any checks against the Extension Warehouse technical requirements.

Unfortunately these requirements have not been easy to discover. At the moment a sub-set is listed here: https://extensions.sketchup.com/en/developer_center/ew_developer#developer-guidelines
But it’s not been maintained.

This is where rubocop-sketchup comes in. https://github.com/SketchUp/rubocop-sketchup
Static analysis of as much as we can automate.

That being said, there are other requirements that rubocop cannot solve. But this is also something we’re taking into account with the new EW version.

Sorry for all the pain with the current process - I truly share it.


#5

@tt_su

Unable to activate rubocop-sketchup-0.1.5, because rubocop-0.52.1 conflicts with rubocop (~> 0.51.0)
RubyGems Environment:
  - RUBYGEMS VERSION: 2.4.8
  - RUBY VERSION: 2.2.4 (2015-12-16 patchlevel 230) [x86_64-darwin15]

john


#6

Yea,… rubocop versions often break compatibility. You need 0.51 for the current version of the rubocop gem.
We probably have to include instructions on how to install the required version.

Alternativly, if you setup a Gemfile in the project folder for your extension, adding rubocop-sketchup as a depenndency I think you can use Bundler to use a local gem set.

Another piece of info (about this pre-release gem) is that some cops check the file structure of the extension and currently expects to find the souce files under ./src. This is something that will be made configurable (and documented off course.).


#7

Actually, I can’t. I deleted all the Extension Warehouse emails, and literally have no way to navigate back to my submission. I’m at my day job, so don’t have the ‘rbz’ here, so I thought I could just fix the latest trivial error by downloading the rbz from the submission page. Except, apparently, I couldn’t, getting an access denied trying to download the .rbz file.


#8

I already had it as well, so I just did an uninstall…

gem uninstall rubocop
...
Select gem to uninstall:
 1. rubocop-0.51.0
 2. rubocop-0.52.1
 3. All versions
> 2
Successfully uninstalled rubocop-0.52.1

john


#9

My bad, I was thinkign of rubocop-sketchup, not testup. I always get those two mixed up :open_mouth: . Could be taht I bstarted using them around the same time.


#10

Wrong category. Parent category or EW category would be better.