<div dir="ltr"><div dir="ltr" style="font-size:12.8000001907349px">Dustin, that's great feedback!<div><br></div><div>I essentially think we need to work on two fronts:</div><div>- we should make the less-than-ideal docker approach more comfortable</div><div>- we should make it easier to do host -> target development</div></div><div class="" style="font-size:12.8000001907349px"></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 24, 2015 at 3:47 PM, Dustin Kirkland <span dir="ltr"><<a href="mailto:kirkland@canonical.com" target="_blank">kirkland@canonical.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="im HOEnZb">On Mon, Jun 22, 2015 at 5:23 AM, Oliver Grawert <<a href="mailto:ogra@ubuntu.com">ogra@ubuntu.com</a>> wrote:<br>
</span><div class="HOEnZb"><div class="h5">> hi,<br>
> Am Montag, den 22.06.2015, 17:59 +0800 schrieb YC Cheng:<br>
>> Hi, I feel uncomfortable with sentences like<br>
>><br>
>><br>
>> "Development isn’t done on the system anymore, instead the Snappy<br>
>> system is a target system and you develop from your Ubuntu Desktop<br>
>> host system"<br>
>><br>
>><br>
>> I guess you are not rule out the possibility to do development on the<br>
>> target. You just propose it might make more sense to do that on Host<br>
>> system, right ?<br>
>><br>
>><br>
>> From what we think about Phone Desktop system, we feel the phone is<br>
>> getting more and more powerful, so that it make sense to use Phone as<br>
>> Desktop system. If that's the case, I think it also make sense to do<br>
>> development on the Phone / target.<br>
>><br>
> dpkg and apt are currently disabled and will soon be completely gone<br>
> from the core image (as will python and probably even bash at some<br>
> point), you can indeed remount / to work on files in core in case you do<br>
> any kind of implementation on that level...<br>
><br>
> but i think having a snap with lxc container or chroot that ships a<br>
> development environment to work in is the better idea here and saves<br>
> normal developers from having to taint their system. the touch UI will<br>
> be one or a number of snaps on top of core (or replacing core), i think<br>
> we should offer *-dev-env,snap packages for each of these that come with<br>
> all tools  and the source for that specific snap inside so you can<br>
> locally build, change, debug and install it (perhaps with an easy snappy<br>
> command)<br>
><br>
> the good thing about moving this bit into the snap area is that you can<br>
> do A - B comparisons by rolling back and forth between the two snap<br>
> packages for debugging ...<br>
><br>
> also the desktop will become snappy too in the snappy personal world.<br>
> you could use these development snaps from there to have your changes<br>
> installed via snappy-remote after building them (and as cherry on top<br>
> such a snap could provide an interface to the SDK for building and<br>
> debugging stuff)<br>
><br>
> all this is slightly off-topic for the comfy discussion though which is<br>
> more about enhancing the core image by some extra commands to make our<br>
> lives more comfortable, i think the development environment for<br>
> snappy-personal deserves its own discussion ...<br>
<br>
</div></div><div class="HOEnZb"><div class="h5">Thanks for the tremendous amount of detail here, Loic!<br>
<br>
I tend to agree with Ogra -- I think we'd benefit from separating the<br>
discussion into the (a) dev-environment discussion, and the (b)<br>
comfy-environment discussion, as I think they're distinctly different.<br>
<br>
We absolutely do need to refine the developer environment experience,<br>
for all or the reasons Loic mentioned, but I think these can be<br>
cleanly addressed with or without comfy.<br>
<br>
Comfy is concept that I feel strongly about.  Without a comfortable<br>
experience, the first-use experience around Snappy feels a bit<br>
shallow.  I've sat down with dozens (hundreds?) of Ubuntu faithful,<br>
using Snappy for the first time at various events around the world.<br>
And just about every time, 5 minutes in, there isn't much else they<br>
can do with the system.  They try to run git to grab their code from<br>
github.  Command not found.  They try to run wget to pull a tarball<br>
from somewhere that they've stashed it.  Command not found.  Curl.<br>
Tmux.  Gcc.  Strace.  Ditto.  I've actually shown multiple people how<br>
to send/receive data using nc (netcat) on a snappy system.<br>
<br>
Snappy is great, once the appliance has been built with apps<br>
pre-installed on the system, and we're working with some excellent<br>
partners to bring that vision to life!  But take a Raspberry Pi 2 with<br>
nothing but Snappy on it, and it doesn't yet feel like the rich,<br>
vibrant Ubuntu ecosystem that the world has come to love.<br>
<br>
Of course we all understand why git/wget/curl/gcc won't be in the<br>
minimal Ubuntu Core -- I certainly don't disagree with that.  But some<br>
way of obtaining the familiar tools that makes a Snappy familiar and<br>
usable as something more than firmware is critical for adoption.<br>
<br>
ChromeOS is pretty cool, from this perspective.  For most users, a<br>
Chromebook is just a web browser, and they love it for that.  But most<br>
Chromebooks have a simple, unobtrusive way to put that machine into a<br>
developer mode, dropping to a shell and obtaining utilities that<br>
exercise the machine much more like a general purpose Linux OS.<br>
<br>
So far, my less-than-ideal workaround on Snappy has been to 'sudo<br>
docker run -it ubuntu', drop into a comfortable Ubuntu-ish root<br>
filesystem, apt-get what I need into that environment, and use it<br>
there inside of the Docker container.  Sometimes, I actually need<br>
those tools outside of the Docker container and onto the host.  This<br>
is where I've had some success copying files/binaries out of the<br>
container.  It would be grand if that process could be backgrounded<br>
and automated somehow...<br>
<br>
Cheers,<br>
Dustin<br>
<br>
</div></div><div class="HOEnZb"><div class="h5">--<br>
snappy-devel mailing list<br>
<a href="mailto:snappy-devel@lists.ubuntu.com">snappy-devel@lists.ubuntu.com</a><br>
Modify settings or unsubscribe at: <a href="https://lists.ubuntu.com/mailman/listinfo/snappy-devel" rel="noreferrer" target="_blank">https://lists.ubuntu.com/mailman/listinfo/snappy-devel</a><br>
</div></div></blockquote></div><br></div>