Closed uosis closed 3 years ago
Hey awesome, thanks a lot for this, I will take a look on the weekend; peak load right now.
Thanks a lot, this is very timely, I was able to add all this web components stuff to Laminar video presentation that I will publish next week.
OTOH I think it's best to start out this project where it is, under your name. I haven't been in open source github orgs before, so I need to think some more about it. Moving afterwards will be easy, as github will even auto-redirect the links AFAIK. We can chat about the pros and cons soon. I'm not necessarily opposed to the idea, just don't have the bandwidth right now, and defaulting to status quo is the easy option.
I will of course still happily link to and promote this project from Laminar!
Oh I just realized there's also the maven package name aspect to this. Duh, of course. Still need to think about it. Soon.
Yeah the package name would be the biggest issue, because it's not as easy to change afterwards. But it's still not a big deal either way, and I understand if you don't want to deal with the admin hassle.
Let me know what you decide.
So then what would a reasonable maven package name be for Laminar? Normally the groupname should match the domain name, so if we used the laminar.dev domain for the org, the package name would have to be... "dev.laminar" %%% "laminar"
? Which is... kinda weird, I don't think I ever used any package that starts in dev
, only com
and org
. Well, maybe io
too, a couple times.
Alternatively I guess we could keep the current "com.raquo" %%% "laminar"
, but then the package name structure wouldn't match the github org structure :|
Maybe there's some other convention I'm not familiar with...
I think either "dev.laminar" %%% "laminar"
or "dev.laminar" %%% "laminar-core"
are good options. Here are some examples of popular packages:
"dev.zio" % "zio"
, "dev.zio" % "zio-streams"
, etczio
, zio.stream
, etc"io.vertx" % "vertx-core"
, "io.vertx" % "vertx-web"
, etcio.vertx.core
, io.vertx.ext.web
, etc"org.postgresql" % "postgresql"
org.postgresql
My vote would be to follow ZIO pattern:
"dev.laminar" % "laminar"
laminar
Ok, that legitimizes the dev
tld for this purpose. I just bought laminar.dev for future use.
For today, my preference would be to keep Laminar-related projects under personal names. Will you be able to publish this project on your own? If not, let's figure out a way to do it. You can see how Outwatch is published via jitpack, without the need for your own domain, I think it's pretty easy.
To explain my reasoning – subjectively, I treat my code as my personal responsibility. For the next few years at least, I'm committed to developing, maintaining, documenting and supporting stuff under com.raquo
as long as it's being useful enough to enough people. But I don't have the capacity to do the same, even to a lower standard, for a whole ecosystem of Laminar libraries, or to continuously choose a raquo-blessed subset of those (some people who won't get in might get offended, and some whom I'd like in will decline).
So, I'm thankful that Antoine is kind enough to share his URL-DSL with us (used in Waypoint), and that you're kind enough to share this web components project. But ultimately those projects are developed and maintained by their authors. If we pulled all Laminar related projects into a single org, those responsibility lines would be blurred, and there might be a external / public expectation on me to support everything under dev.laminar, and, knowing myself, there will be my own internal pressure for uh, opinionated perfectionism across everything under dev.laminar. Which I don't want to impose on others, and have no capacity to provide myself.
Bottom line, I think this is mostly an exercise in branding and expectations, and for that, keeping the status quo would best reflect the current situation and the foreseeable future. We just don't operate as a cohesive org, where if one person leaves the org will find a replacement. For collaboration on the other hand, I am quick to add anyone who expresses any interest in contributing to the Laminar project, so far this has been working, I never felt that we needed an org to manage that.
Hope this makes sense. I don't want to discourage people's efforts or the development of the ecosystem with decisions like this, but I do think it's overall for the best this way.
Sounds good. I am glad you snagged laminar.dev.
I will publish this somewhere when I get a chance. Probably to Github packages.
Thanks for your inputs and consideration!
I @uosis, did you finaly publish something ? I tried to run the showcase but it fails to find the material:
sbt.librarymanagement.ResolveException: Error downloading dev.laminar:laminar-components-material_sjs1_2.13:0.1-SNAPSHOT
Thanks !
In Scala, SNAPSHOT versions generally aren't published, you need to check
out this repo locally and then sbt publishLocal
it.
On Wed., Nov. 25, 2020, 6:12 a.m. Mathieu, notifications@github.com wrote:
I uosis, did you finaly publish something ? I tried to run the showcase but it fails to find the material:
sbt.librarymanagement.ResolveException: Error downloading dev.laminar:laminar-components-material_sjs1_2.13:0.1-SNAPSHOT
Thanks !
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/uosis/laminar-web-components/issues/4#issuecomment-733730268, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAECBMFRBRXYREZAA7KHLMTSRUGDLANCNFSM4QNXUS6A .
--Nikita
Yes, it is what I did. What is the release plan for non snapshot version ?
No immediate plans, unfortunately - the project where we were going to use these got de-prioritized, so it will be a while before I can find the time.
Published to GitHub packages.
Do you know whether we need a github token to get your dependencies ? I got this error
[error] stack trace is suppressed; run last credentials for the full output
[error] (credentials) unable to locate a valid GitHub token from Environment(GITHUB_TOKEN)
coming from the sbt plugin sbt-github-packages
@mathieuleclaire yeah you do need a token even for public packages - that's one of the annoyances of GitHub Packages.
OK, thanks. I added one in my github settings, but I don't find any git command to import / apply it in my scala project.
You don't need any git command, it's just an environment variable. You can just do export GITHUB_TOKEN="abcdef12345cafebabe"
.
See sbt-github-packages docs for other options to provide the token.
OK, I can get the it now, thanks. But, you are right, this it is binding, for instance to use it in a deployed application (in a docker for instance).
And, you didn't include the ListItem fix in this release ? I still have these errors:
not found: value ListItem
[error] ListItem(_.slots.default(span("First"))),
Yes I saw that and yet the compiler complains only for ListItem.
I can't use github tokens in intellij. Do you use this editor ?
I did not test it in Intellij, no. But I don't see any reason it wouldn't work - my guess environment variable is not propagating correctly. You can also try other ways of providing the token, e.g. in git config, so that it does not depend on environment.
I did include the ListItem fix - see the updated showcase here.
I need to import specifically
import com.github.uosis.laminar.webcomponents.material.List.ListItem
to have access to ListItem
@raquo here is the Material Web Components library for Laminar that I mentioned. It's not completely polished yet, but it seems to be generally working.
Where do you think is the best place to publish this? What is your opinion about creating a GitHub organization for Laminar and putting everything there? LaminarDev organization and laminar.dev domain are both available (laminar organization is unfortunately taken by some abandoned thing). I think such branding would help promote Laminar's adoption.
Or should I just publish this separately?