Skip to content
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

Serial ports and Julia #3

Closed
s-celles opened this issue Mar 28, 2019 · 23 comments
Closed

Serial ports and Julia #3

s-celles opened this issue Mar 28, 2019 · 23 comments

Comments

@s-celles
Copy link

s-celles commented Mar 28, 2019

Hello,

the situation of Julia libraries dealing with serial ports seems to be nearly "locked" since some months.

There is currently 2 libraries:

There respective contributors @sjkelly and @andrewadare did a lot of work to provide access to serial communication to Julia developers. They followed two differents technical paths, they fixed bugs and tried to follow Julia version evolution (as much as they can).
I really want to thank them for what they did!

Unfortunately I don't think using Python for such a task is the way to go... because we can't force Julia developers to have Python installed. So, my opinion is that SerialPorts.jl should be renamed PySerialPorts.jl JuliaIO/SerialPorts.jl#24 because that's more explicit about what this project is.

On the other side, LibSerialPort.jl may be a good alternative for people who don't want to use Python with Julia just for serial communications but this library is currently not part of JuliaIO and so enhancements can only occur when his original author have enough time to tackle this (we all have various priorities... and for most of us, open source contributing is just a hobby).

I don't think that's a good approach and having his development under JuliaIO umbrella could help to give it more care JuliaIO/LibSerialPort.jl#20

The question of SerialPorts / LibSerialPort migration started in 2016 JuliaIO/SerialPorts.jl#14

For example, publishing a release of LibSerialPort.jl ( JuliaIO/LibSerialPort.jl#27 )

Questions about SerialPorts.jl remain... maybe it should simply export PySerialPorts function in the beginning and in a mid term future it should provide a higher level API to use either PySerialPorts.jl or LibSerialPort.jl maybe it should simply be deprecated to show 2 alternatives (PySerialPorts and LibSerialPorts).

Anyway, what ever the future of SerialPorts.jl is, I think the situation should evolve to have 3 registered Julia packages for serial communication : SerialPorts.jl, PySerialPorts.jl, LibSerialPort.jl

I don't have legal background but noticed that

  • LibSerialPort.jl is LGPL licensed (like libserialport C library)
  • SerialPorts.jl (PySerialPorts.jl ?) is MIT "Expat" licensed (like many Julia packages)

I will be very pleased to have your opinion about this (both authors and contributors of SerialPorts.jl and LibSerialPorts but also from members of JuliaIO) ?

Kind regards

PS : pinging some Julia contributors who have an interest for serial com and Julia (being previously contributor of SerialPorts.jl and/or LibSerialPort.jl) @tknopp @samuelpowell @ReubenHill @yakeworld

@timholy
Copy link
Member

timholy commented Mar 28, 2019

AFAIU it's perfectly fine to have a C library be LGPL but to have the Julia wrapper be any other license.

@ReubenHill
Copy link

I agree with the need to tidy this all up - particularly the contents of the registered SerialPorts.jl package.

One thought - might having registered packages named both SerialPorts.jl and LibSerialPort.jl be confusing? I understand that the Lib prefix is often used to indicate a wrapper of someone else's API, would that be enough to ensure people know which package is best suited for what they want?

Also, and apologies if you've said this and I missed it, what would the core difference be between SerialPorts.jl and LibSerialPort.jl?

@samuelpowell
Copy link

If the authors agree, then I certainly think that bringing these packages under JuliaIO and renaming SerialPorts -> PySerialPorts would be sensible. I'm not sure how a generic SerialPorts package, in addition to the above, would add much value?

@tknopp
Copy link

tknopp commented Mar 28, 2019

We are using LibSerialPort.jl and are very happy with it. From my perspective the most important thing is to register LibSerialPort.jl so that we get versioning. A move to JuliaIO makes sense.

Renaming SerialPorts to PySerialPorts is also very good to make the naming more clear. I am not sure what value is in SerialPorts. If the goal is to have a drop-in replacement one would go the other way around. Make some AbstractSerialPorts package, where only the interface is defined (in some abstract type) and then both other packages could implement the common interface then.

Since I am personally fine with just LibSerialPort.jl I don't see a pressing need for the standardization on the API level.

@andrewadare
Copy link

andrewadare commented Mar 28, 2019

I just submitted LibSerialPort.jl to METADATA.jl. It looks like Travis is pounding on it right now. What are the next steps for getting LibSerialPort.jl added to the JuliaIO organization?

@SimonDanisch
Copy link
Member

Wait, shouldn't you move it first? It's relatively annoying to change it after it's registered!

@s-celles
Copy link
Author

Thanks @andrewadare for releasing and considering moving repository to JuliaIO
Here is doc about transferring repository. I think @SimonDanisch is right... you should probably move repository and only after publish a release.
Maybe it's not too late... JuliaLang/METADATA.jl#22493 is not merged!

@s-celles
Copy link
Author

I'm not an owner of JuliaIO but one will need to grant you correct rights to https://github.com/JuliaIO/LibSerialPort.jl
You will have to change Travis from https://travis-ci.com/andrewadare/LibSerialPort.jl to https://travis-ci.com/JuliaIO/LibSerialPort.jl and fix Travis badge on README.md
A last step will be to install attobot and femtocleaner to https://github.com/JuliaIO/LibSerialPort.jl
And after publish a release...

@andrewadare
Copy link

@scls19fr thanks for the guidance. I have never registered a package or transferred a repo to an organization before. Re-reading this thread, it sounds like there is general consensus to move it here (someone please speak up if that's not the case).

I have already installed attobot, but will take the remaining steps mentioned above if/when access to JuliaIO is provided.

Also, thanks @timholy for clarifying the license issue. I changed LibSerialPort.jl back to MIT, which is how I had originally set it up.

@s-celles
Copy link
Author

I think you will have to be reinstall attobot in the new repository (after moving) but I'm not a Github bot specialist.
Thanks again for the great work on LibSerialPort.jl and accepting to move this package. I hope we will be able to collectively take some care of it.

@tknopp
Copy link

tknopp commented Mar 28, 2019

Yes, first move then register. So JuliaLang/METADATA.jl#22493 should be closed. @SimonDanisch can you grant access for the move?

@samuelpowell
Copy link

I currently host a repository that provides the binary builds of the libserialport library for Windows via CI. We may want to move the whole thing to BinaryBuilder in the future but for now I should probably move that repository here. @SimonDanisch could I also get access to the organisation for this purpose and to support further development on this repository?

@samuelpowell
Copy link

Thanks @SimonDanisch I will move the repo and raise a PR shortly.

@samuelpowell
Copy link

samuelpowell commented Mar 29, 2019

If any windows users want to make sure I haven't broken it that would be appreciated.

@sjkelly
Copy link
Member

sjkelly commented Mar 29, 2019

What is the best process to rename SerialPorts.jl to PySerialPorts.jl?

@jordancluts
Copy link

@samuelpowell It's been awhile but wanted to say that aside from the pre-standing Windows issues LibSerialPort works fine for me on Windows 10.

@s-celles
Copy link
Author

@sjkelly About renaming SerialPorts.jl to PySerialPorts.jl... It should be discussed at JuliaIO/SerialPorts.jl#24.
My opinion is that a new package PySerialPorts.jl should be created with exact same content as actual SerialPorts.jl and registered with same version number than latest registered SerialPorts.jl.
After this, SerialPorts.jl could be deprecated

@samuelpowell
Copy link

@jordancluts that's good to hear, thanks!

@KronosTheLate
Copy link

I just found this conversation, which seems to make all the right conclusions, 1.5 years later. I found it because it seems nothing has actually been changed. Is there any news or active work on making the things discussed happen?

@andrewadare
Copy link

This issue concerned moving LibSerialPort.jl to the JuliaIO organization, and we did that. It is actively maintained and part of the Julia package ecosystem.

@KronosTheLate
Copy link

Right, I missed that. However, SerialPorts is not renamed to PySerialPorts, and came up first during my search, even though LibSerialPorts seems more fit for me. But the organization-thing is fixes for sure. Does that mean that this issue should be closed?

@andrewadare
Copy link

@scls19fr do you think we can close this now? At this point, I think there's a good case to be made for keeping the packages named as they are.

@s-celles
Copy link
Author

renaming SerialPorts to PySerialPorts should really be considered becauseSerialPorts name leads confusion with LibSerialPort.jl
This is the only problem remaining here... but it's also discussed at JuliaIO/SerialPorts.jl#24 so I think also we can close.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants