Skip to content

Conversation

albfan
Copy link
Collaborator

@albfan albfan commented Mar 15, 2020

Use goocanvas-3.0 to allow collaborate upstream.

Library goocanvas-2.0 is old and modify it will break old packages depending on it.

Summary / How this PR fixes the problem?

Allowing develop on goocanvas without break old goocanvas-2.0

Steps to Test

Build goocanvas from goocanvas-3.0 and build Akira with this PR

Known Issues / Things To Do

Do a goocanvas-3.0 release so it can be bundled downstream (elementary...) @Alecaddd?

This PR fixes/implements the following bugs/features:

Blocker for rect border edition

@albfan albfan requested review from Alecaddd and giacomoalbe March 15, 2020 13:50
@bilelmoussaoui
Copy link
Collaborator

The build fails as the goocanvas isn't available anywhere for now. I would use a subproject and include goocanvas-3 in the source for now

@albfan
Copy link
Collaborator Author

albfan commented Mar 15, 2020

@bilelmoussaoui should I release a goocanvas-3.0 for that?

@bilelmoussaoui
Copy link
Collaborator

No need for that, you can just use a wrap file with something like

subprojects/goocanvas.wrap

[wrap-git]
url = https://gitlab.gnome.org/GNOME/goocanvas.git
revision = goocanvas-3.0

and then include it in meson.build with

subproject('goocanvas')

@albfan albfan force-pushed the goocanvas3 branch 13 times, most recently from 1312a84 to 03486d9 Compare March 15, 2020 20:00
@albfan
Copy link
Collaborator Author

albfan commented Mar 15, 2020

@bilelmoussaoui feel free to rework the last commit if needed. If not I will try again later

@Alecaddd
Copy link
Member

This works if I manually compile and install goocanvas-3.0 on my system, but as expected, it doesn't work with a simple ninja build.

I pinged the folks at elementary to be sure the final release will be built with everything we're baking into the CI, in order to not release a busted version.

Meanwhile, I think we should implement the subproject as suggested by Bilal.
Meson subprojects seems to support also cmake, even if not entirely.

https://mesonbuild.com/Subprojects.html#toggling-between-system-libraries-and-embedded-sources
https://mesonbuild.com/CMake-module.html#cmake-subprojects

Copy link
Member

@Alecaddd Alecaddd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great, but let's implement the subproject for easy local builds

@Alecaddd
Copy link
Member

@albfan so, based on where elementary is going, transitioning to flatpak and all, I was wondering if we should wait.

We can decide to postpone the usage of goocanvas-3, alongside all the connected features, for when the transition to flatpak will be completed.
In this way, we can avoid overcomplicating our life, and simply relying on flatpak altogether.
What do you think?

We can leave this PR open and update it for when the flatpak day comes.

@albfan
Copy link
Collaborator Author

albfan commented Mar 16, 2020

Sure, no hurry.

@Alecaddd
Copy link
Member

@albfan would you be able to update this PR so we can merge it since we're not targeting elementary OS 5 anymore and we're going full flatpak?

@albfan
Copy link
Collaborator Author

albfan commented Jan 15, 2021

That sounds great, let me put everything else in place. Upstream work time!

Use goocanvas-3.0 to allow collaborate upstream.
Library goocanvas-2.0 is old and modify it will break old packages
depending on it.
@albfan
Copy link
Collaborator Author

albfan commented Jan 16, 2021

upstream work on goocanvas is ready (at least for radii modifications)

https://mail.gnome.org/archives/ftp-release-list/2021-January/msg00074.html

Not sure about the timing for downstream distros to create goocanvas-3.0 development package.

Right now CI is modified to build goocanvas fro source.

@Alecaddd up to you to merge this.

If we are gonna focus on @flatpak development probably we want to migrate CI to be flatpak based. @bilelmoussaoui what do you think. (benefit: Speed, drawback: More apart from tradicional workflow, hard to provide support to tradicional developers)

@albfan albfan mentioned this pull request Jan 16, 2021
@bilelmoussaoui
Copy link
Collaborator

upstream work on goocanvas is ready (at least for radii modifications)

https://mail.gnome.org/archives/ftp-release-list/2021-January/msg00074.html

Not sure about the timing for downstream distros to create goocanvas-3.0 development package.

Right now CI is modified to build goocanvas fro source.

@Alecaddd up to you to merge this.

If we are gonna focus on @flatpak development probably we want to migrate CI to be flatpak based. @bilelmoussaoui what do you think. (benefit: Speed, drawback: More apart from tradicional workflow, hard to provide support to tradicional developers)

The PR I sent & was merged already adds support for doing all what the current CI does in a flatpak sandboxed environment, so the current CI can be just removed if that's your question.

@bilelmoussaoui
Copy link
Collaborator

Also note that all the core elementary apps are using the same CI github action and it fairly safe to say it's working fine

@Alecaddd
Copy link
Member

Thanks @albfan for updating this and @bilelmoussaoui for giving the green light.
I'm waiting for the CI to complete the build and then I'll merge this.

I think we should consider creating a dedicated INSTALL.md file with the instructions on how to manually build and install goocnvas-3.0 in case the user's distro doesn't come with it.
But we can do that in a follow up PR.

@Alecaddd Alecaddd self-requested a review January 16, 2021 18:49
@Alecaddd
Copy link
Member

Ah, I think it failed but the UI didn't update properly.

.github/workflows/build.yml#L20
You have an error in your yaml syntax on line 20

@albfan albfan force-pushed the goocanvas3 branch 6 times, most recently from a7d3925 to 6383a66 Compare January 16, 2021 22:01
@albfan
Copy link
Collaborator Author

albfan commented Jan 17, 2021

I added our custom vapi dir again for goocanvas-3.0.vapi

I open a new issue on vala about it, as it shows several differences with goocanvas-2.0.vapi.

https://gitlab.gnome.org/GNOME/vala/-/issues/1127

In case it takes longer than expected, we can cherry pick things from my generated file: https://gitlab.gnome.org/GNOME/vala/uploads/c25a743882ab89e4b96e0a8fb8257e8b/goocanvas-3.0.vapi

@Alecaddd
Copy link
Member

Strangely, this fails for the flatpak CI reporting Error: Build failed: Error: The process '/usr/bin/xvfb-run' failed with exit code 1
@bilelmoussaoui, any clue on this?

I'm also considering removing the xvfb and the whole automated test run in the CI, which is also disabled right now, since the GitHub CI is not powerful enough to handle GUI tests.

@Alecaddd
Copy link
Member

Locally this works, so I'm good with merging this and then fixing the Flatpak CI later.
What do you guys think?

Alecaddd
Alecaddd previously approved these changes Jan 17, 2021
@bilelmoussaoui
Copy link
Collaborator

Strangely, this fails for the flatpak CI reporting Error: Build failed: Error: The process '/usr/bin/xvfb-run' failed with exit code 1
@bilelmoussaoui, any clue on this?

I'm also considering removing the xvfb and the whole automated test run in the CI, which is also disabled right now, since the GitHub CI is not powerful enough to handle GUI tests.

The flatpak manifest has to be updated as well, if you look few lines before that error you will see it fails to apply a patch that's already part of the new 3.0 release

@Alecaddd
Copy link
Member

The flatpak manifest has to be updated as well, if you look few lines before that error you will see it fails to apply a patch that's already part of the new 3.0 release

Do you want to suggest the edit in this PR, or it's okay if we merge and then you create a follow up PR to fix the issue?

@bilelmoussaoui
Copy link
Collaborator

The flatpak manifest has to be updated as well, if you look few lines before that error you will see it fails to apply a patch that's already part of the new 3.0 release

Do you want to suggest the edit in this PR, or it's okay if we merge and then you create a follow up PR to fix the issue?

My latest two commits should hopefully fix it, I will keep an eye on it till it finishes ^^

@bilelmoussaoui
Copy link
Collaborator

Looks all green now :D

Copy link
Member

@Alecaddd Alecaddd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work, guys!

@Alecaddd Alecaddd merged commit f3ed143 into master Jan 17, 2021
@Alecaddd Alecaddd deleted the goocanvas3 branch January 17, 2021 20:31
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

Successfully merging this pull request may close these issues.

3 participants