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

1.0 release planning #438

Open
6 of 12 tasks
mateuszbaran opened this issue Oct 11, 2021 · 10 comments
Open
6 of 12 tasks

1.0 release planning #438

mateuszbaran opened this issue Oct 11, 2021 · 10 comments

Comments

@mateuszbaran
Copy link
Member

mateuszbaran commented Oct 11, 2021

I'd like to collect in one place items that we'd like to do before releasing 1.0 of Manifolds.jl and ManifoldsBase.jl. I'm not going to specifically focus on these but I think it'd be nice to have some sort of a roadmap. Please feel free to propose changes, this is just a list of a few things that came to my mind.

ManifoldsBase.jl: JuliaManifolds/ManifoldsBase.jl#211

Now that we don't import all symbols exported by ManifoldsBase.jl to Manifolds.jl we can move things from Manifolds.jl to ManifoldsBase.jl without tagging a breaking release.

Manifolds.jl:

@kellertuer
Copy link
Member

I would like to also have

But overall I think our interface is stable enough (after the changes you proposed already) to go towards a 1.0, yes. I will check whether there is a specific feature we might want to support for manifolds in general.

@mateuszbaran
Copy link
Member Author

Sure, I've added it to the list. Metric manifold stuff seems to be the least mature part of our interface.

Regarding additional features, there is still quite a lot that could be added, and I haven't even documented everything in issues yet.

@kellertuer
Copy link
Member

Let's maybe collect a few features that we might want to have for a stable 1.0 release, though we have more open issues by this approach.

Concerning the metric manifold ideas, I can look into that but I first wanted to consider Hessians.

@mateuszbaran
Copy link
Member Author

Concerning the metric manifold ideas, I can look into that but I first wanted to consider Hessians.

Sure, Hessians would be a nice addition for Manopt.jl. Concerning metric manifolds, I'd suggest mainly focusing on working in charts.

@sethaxen
Copy link
Member

I don't think we need to rush to a 1.0. It implies an extreme stability and is quite limiting when it comes to making changes. In particular, I would like to see the interface battle tested by a large variety of packages before considering this. If packages aren't using it, there's no need for a 1.0. And if they are, and we're finding the interface needs no changes, then we can consider it.

A roadmap in general is a good idea though.

@kellertuer
Copy link
Member

You are right, we should definitely not rush and there might be changes coming when the package is used more and we should not rush to a 1.0 before the “battle testing” has happened to some extend.

I think the idea here is exactly to collect points and features towards a 1.0.

@mateuszbaran
Copy link
Member Author

Yes, exactly, I don't want to rush 1.0 but just have a place to discuss what breaking changes are planned.

@kellertuer
Copy link
Member

kellertuer commented May 29, 2023

I was looking around a bit whether we can reduce our issues a bit by solving the easier ones at least.
I would add one point to the list before w go 1.0

  • Decide whether the abstract types should have abstract in their names

We currently have that somewhere introduced (for Manifolds for example), but the more I see those names they feel like they have their type in their name, which I do like less and less. But my main point is, we are not consistent. So we should check that and aim for a consistent naming scheme (where I would prefer to avoid AbstractX names, by now though I might have introduced a few of them myself).

@mateuszbaran
Copy link
Member Author

Hm, I actually somewhat like the AbstractX names. When I see a method f(::AbstractType) I can quickly see if it dispatches on abstract or concrete type. But I can definitely live without that.

@kellertuer
Copy link
Member

While I have a slight tendency towards not having that, I see mine as just a personal feeling, so if you have a reason that simplifies your workflow, we can go with your idea as well; I think my main argument was more to then unify that throughout the packages.

I just feel sometimes it is a bit clumsy and yields long names with the Abstract upfront and usually the docs (for me on mouse hover) tell the type (whether its abstract or not) anyways real quick.

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

No branches or pull requests

3 participants