-
Notifications
You must be signed in to change notification settings - Fork 3
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
Consider multiple size-based releases 🔬🔍🔭📡 #42
Comments
My workshop for the next robot conference was accepted, which confirms that I will be attending the sprints there. Apparently there is still no installer available for Robot Framework, so I've been thinking, if I should try to fork this project and try this "multiple size-based releases" for that. For plain robot it would make sense to have minimal version with just robot framework, but also a version for getting started with selenium testing (the real reason for the installer). |
Hooray!
You know I'm glad to help, and a fork is just more repos to watch: I don't see any reason why we wouldn't start it here, and why we wouldn't want synchronized, automated releases of the whole shooting match. If somebody wants to then fork that, at some point, that's great. We can even stop doing the kinda gross templating, and just manage the yaml generation more simply in python directly, if we start feeling confident. The CI build would take longer, but i think there's value in managing a single pipeline for all the stuff together.
yup, as a CI thing, that would be great.
so even there i would imagine two flavors:
i'm really liking having firefox in our installer, and if we can do our little part to help more people test on firefox, i'm all for it. The only gotcha is on Linux, you do still have to have Unless we ship all the chromedrivers, we can't really ship any chromedrivers, but we could ship webdrivermanager, and indeed ship all of them pre-cached. |
Thanks. I can agree with your reasoning. I also prefer Firefox being bundled because now things just work. It also makes sense that whatever version or browser you use for surfing in the web should not interfere with learning Selenium testing. Finally, promoting Firefox would not hurt the diversity in browser ecosystem... That said I cannot really focus on this before November, but will then. |
I hear you, my friend. Who knows, maybe i'll be able to throw some stuff at it. What is your priority for getting something out? Maybe hack on the summary of this issue to make it clear. I guess I would lean towards the smallest functioning robot environment, just so we have a size/complexity baseline, but if the web one is more useful we could start there. |
I’d vote for the baseline. We already know that we can make a GB sized installer with everything :) After the baseline, another baseline with SL, gecko and Firefox, and then documented approach to fork and extend those baselines. Finally, at the conf it makes sense to discuss what libraries should be bundled with the default starter (for learning and getting started purposes): |
i did a little playing with this last night:
|
Very cool! Which screenshots feature relies on wx? Does dialogs library work? The point for a installer is to give environment that just works, so from that point of view 200M is not much nowadays. And now that you mentioned RIDE... does it already support Python 3? Sure many would like it to be included and it’s been hard to install on many systems because of wx. (Although that probably was because for long it required very old version of that.) |
here's the full package list of `Exo` (on linux)
Looks like
if all it takes is
looks like they test with 3.6. and don't pin |
No I didn't put selenium in one of the new ones, but I do think shipping
Firefox/geckodriver with it is probably the right thing to do, if it should
Just Work after downloading (e.g in CI). Do you think wx/ride are worth the
size hit for the web excursion? Or just also add it to Exo? You _wouldn't_
actually use wx in CI.
Also what about SSHLibrary? It's first party, solid as hell, relatively
light, super useful, and makes it easy to test iot stuff, as well as vms d
cloud stuff... But you kinda have to know what you're doing because
passwords. Put in Exo?
WhiteRobot? I've still not made it work on win10, and don't like how it's
packages. But sounds so good!
SikuliRobot: I always consider it the Last Argument of Kings of test
execution. Hard to maintain, but can probably do the thing. Packaging Java
stuff is no problem, though jython probably is or will be soon, if you
expect to be able to run anything else after 89 days!
The whole *Robot branding thing is a bit silly, of course, and wouldn't
help people. If we were doing this for real, we'd probably need a
choose-your-own-adventure page "what are you testing?" "What operating
system are you testing on?" That kind of thing. Have a "just show me the
robots" escape hatch, and let people pick the one they want from a table of
key packages. Do the classic up-sell and point them towards RobotLab
because it has more check marks :)
I definitely want to belay the Hub one, for now. I've made a totally
self-contained jupyterhub work with ansible/systems spawner (haven't tried
a k8s version yet). in certain kinds of training (schools), the
participants may only have an older Chromebook, and wouldn't be able to
install random software. Also building for ARM is still a touch outside of
our capabilities. Anyhow: set up a NUC, run the installer, throw in your
course content, turn on WiFi, and you're good to go in seconds per
participant rather than tens-of-minutes.
…On Thu, Oct 3, 2019, 00:22 Asko Soukka ***@***.***> wrote:
Am I correct that ExoRobot does not yet include Selenium testing
dependencies? I recall robot users have a long hoped for an installer with
Selenium dependencies. But adding Firefox with geckodriver into mix would
probably make ExoRobot fat? So, should there be "SeleniumRobot"?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#42?email_source=notifications&email_token=AAALCRCIQ3CBAGLUSQZUKOTQMVXQZA5CNFSM4IYDQJ6KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAG5ZWI#issuecomment-537779417>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAALCRC53EF77KHDIGYLF4TQMVXQZANCNFSM4IYDQJ6A>
.
|
Ok Let's not guess too far ahead :) I could see two separate installer
tracks: one for RobotLab and the other one for more conservative Robot
Framework users.
Quoting Nicholas Bollweg (2019-09-18 23:42:00)
MicrobotLab ð¬
* for CI environments
But "how micro" this could be, because "Lab"-branding would probably make
this need nbconvert and nbrobot (the latter from robotkernel) to be able
to execute notebooks. (I do actually use nbrobot in production RPA
already.) No wx required here.
RobotLabLite ð
I'm not quite convinced that this is really needed. This could be used
as a base to build custom environment, but why not just install
miniconda then?
RobotLab ð
* as it is now!
+ even shipping Firefox is great!
I agree everything on this. Big is good here. It's so good that the
download is worth waiting for.
RobotHub ð¡
* ship a whole [3]littlest jupyter hub
This is interesting. I have never set up JupyterHub myself yet, but this
would have very interesting educational and enterprise use cases :)
Then the more conservative Robot Framework track. Robot Framework is
completely missing standalone installers and your work seems to be the
best there is so far. It feels a bit weird to design and build it here,
but I understood that it would be better than forking this into another
repository to follow.
MiniRobot as it is. It's good to have something minimal with at least
pip to install some libraries when you know what to do.
ExoRobot was interesting. Like "MiniRobot" was just a proof-of-concept
and "ExoRobot" was the actually practical base to build an environment.
I feel this makes more sense thatn "RobotLabLite", but I'm not sure if
ride really belongs to here (even when it comes with wx).
WebRobot (terrible name). Comparable to RobotLab. Should come at least
with Ride, SeleniumLibrary, geckodriver and Firefox. But maybe also with
SSHLibrary, RESTinstance and SeleniumTestability. Really hard to draw
line where to end here...
Should I ask the other workshops at the next Robocon if they would like
to have your installer experience?
|
A lot to chew on there!
I can rework some of the existing ones with your guidance above.... Adding
the web one is a no-brainer, we already have everything.
Maybe we need a further piece of the name on the non-lab ones, e.g
WebRobotBox or something, as "*robot" is super overloaded, and we don't
need to get into any trouble.
The only bounding condition on us _shipping_ more installers is
_supporting_ them, to my mind. What we would not want is upstreams getting
complaints from users when things don't work, if the installers are not a
suggested install mechanism.
The workshop case is _ideal_, though, as the instructor is on the hook to
provide support, and can't disappear. You should certainly offer it.
…On Thu, Oct 3, 2019, 13:36 Asko Soukka ***@***.***> wrote:
Ok Let's not guess too far ahead :) I could see two separate installer
tracks: one for RobotLab and the other one for more conservative Robot
Framework users.
Quoting Nicholas Bollweg (2019-09-18 23:42:00)
> MicrobotLab ð¬
> * for CI environments
But "how micro" this could be, because "Lab"-branding would probably make
this need nbconvert and nbrobot (the latter from robotkernel) to be able
to execute notebooks. (I do actually use nbrobot in production RPA
already.) No wx required here.
> RobotLabLite ð
I'm not quite convinced that this is really needed. This could be used
as a base to build custom environment, but why not just install
miniconda then?
> RobotLab ð
> * as it is now!
> + even shipping Firefox is great!
I agree everything on this. Big is good here. It's so good that the
download is worth waiting for.
> RobotHub ð¡
> * ship a whole [3]littlest jupyter hub
This is interesting. I have never set up JupyterHub myself yet, but this
would have very interesting educational and enterprise use cases :)
Then the more conservative Robot Framework track. Robot Framework is
completely missing standalone installers and your work seems to be the
best there is so far. It feels a bit weird to design and build it here,
but I understood that it would be better than forking this into another
repository to follow.
MiniRobot as it is. It's good to have something minimal with at least
pip to install some libraries when you know what to do.
ExoRobot was interesting. Like "MiniRobot" was just a proof-of-concept
and "ExoRobot" was the actually practical base to build an environment.
I feel this makes more sense thatn "RobotLabLite", but I'm not sure if
ride really belongs to here (even when it comes with wx).
WebRobot (terrible name). Comparable to RobotLab. Should come at least
with Ride, SeleniumLibrary, geckodriver and Firefox. But maybe also with
SSHLibrary, RESTinstance and SeleniumTestability. Really hard to draw
line where to end here...
Should I ask the other workshops at the next Robocon if they would like
to have your installer experience?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#42?email_source=notifications&email_token=AAALCRDICGDT7ZE7NF53HK3QMYUSRA5CNFSM4IYDQJ6KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAI7MKI#issuecomment-538048041>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAALCRDJHTFILBLS42GYN33QMYUSRANCNFSM4IYDQJ6A>
.
|
@bollwyvl To avoid misunderstandings, don’t waste your time to rework anything yet. As you said, all the pieces are already there and probably even I could put them together if I really need to. Let’s continue to focus on what this should mean for the “Lab” and only return to the generic installers when there is real need (and a possibly a maintainer). Disclaimer about the CI-version: I don’t have personal use for it, because we have Nix on our CI machines :/ |
Great, focus on lab good. I like the nbrobot-forward idea. Re: nix: indeed,
once nix supports one click installers on windows, I'll happily use it to
train people on things other than nix. :P
Back on topic: I guess to the marketing-as-design point, if we sketch up
what we'd like a blog post/landing page to contain, that would help resolve
some of the ambiguity... Will take a crack at it. Documentation need still
remains the same, but maybe there's a story in there... The (somewhat
neglected) irobotframework docs built with nbsphinx might be a good
prototype.
|
Sry, have been deep in the language server stuff. I'll try to get back to this after a bit of a holiday this weekend: basically, I intend to keep everything in #52, but not actually build any of the general purpose stuff, land that, and then have a look at some of the other concepts we're developing here. Maybe do some design sketches on the road :) Back on the LSP stuff: it's taken some really nasty stuff down in python/r/node land, and am only now getting to where I can help out with the browser testing. Been stealing a lot from this repo :P The end game there is to get all of that into JupyterLab itself, but there are a lot of nuts and bolts to figure out before then. When that's good to go (on pip and npm) some time next month, I think we'll want the UI things it already offers (jump to definition, highlight references, etc) for
I can also imagine a future where kernels become implicit language servers and clients: with what we ended up with, it's a many-to-many relationship between documents and language servers, everything goes through the notebook server, what's a few more? Heck, there are even nix language servers (though can't tell which of the rust, go, or haskell implementations will win). Additionally, to that end, here's a cool thread about a guix kernel: https://groups.google.com/forum/#!topic/jupyter/jUfLBPSlbXY |
And 'cuz I know you love looking at robot reports... |
I did do some drawing: nothing super solid to show for it. There's not much you can do with a feature table, and there's certainly bounded complexity to how much you can stuff in there. There are a few hierarchies that came to mind, but i think one of the more logical ones was...
A funny thing that came to mind, sort of related to the Hub concept, is a "Pro" spin (think a second, full day workshop), which includes the things you would need to extract, build, test, and package new robot libraries (or extensions to kernel) as part/in support of a team. On the backend, you'd have your tooling like |
RobotLab is big and likely to get bigger as more cool features need more (exotic) dependencies.
We could just as easily spin a couple different intstallers a la Miniconda/Anaconda in CI.
MicrobotLab 🔬
RobotLabLite 🔍
opencv,nodejs,pandoc), and even repackage some things (jupyterlab assets)RobotLab 🔭
RobotHub 📡
The text was updated successfully, but these errors were encountered: