uosis / laminar-web-components

Web Component definitions for Laminar
MIT License
36 stars 8 forks source link

Publish package #4

Closed uosis closed 3 years ago

uosis commented 4 years ago

@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?

raquo commented 4 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!

raquo commented 4 years ago

Oh I just realized there's also the maven package name aspect to this. Duh, of course. Still need to think about it. Soon.

uosis commented 4 years ago

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.

raquo commented 4 years ago

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...

uosis commented 4 years ago

I think either "dev.laminar" %%% "laminar" or "dev.laminar" %%% "laminar-core" are good options. Here are some examples of popular packages:

My vote would be to follow ZIO pattern:

raquo commented 4 years ago

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.

uosis commented 4 years ago

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!

mathieuleclaire commented 3 years ago

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 !

raquo commented 3 years ago

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

mathieuleclaire commented 3 years ago

Yes, it is what I did. What is the release plan for non snapshot version ?

uosis commented 3 years ago

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.

uosis commented 3 years ago

Published to GitHub packages.

mathieuleclaire commented 3 years ago

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

uosis commented 3 years ago

@mathieuleclaire yeah you do need a token even for public packages - that's one of the annoyances of GitHub Packages.

mathieuleclaire commented 3 years ago

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.

uosis commented 3 years ago

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.

mathieuleclaire commented 3 years ago

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"))),
uosis commented 3 years ago

I did include the ListItem fix - see the updated showcase here.

mathieuleclaire commented 3 years ago

Yes I saw that and yet the compiler complains only for ListItem.

mathieuleclaire commented 3 years ago

I can't use github tokens in intellij. Do you use this editor ?

uosis commented 3 years ago

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.

mathieuleclaire commented 3 years ago

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