PokiPoki in KDEReview

2020-08-26 Thread Carson Black
Hi y'all!

I'd like to see PokiPoki go through KDEReview and eventually end up
releasing as an extragear library.

PokiPoki is a framework that aims to make persistent objects as
trivial to use as possible and provides other sugar functionality on
top of simply persisting objects, such as an undo/redo stack.

>From a code overview, PokiPoki is split into two main parts:
libpokipoki and pokic. libpokipoki is a small helper library that
provides types used by pokic while pokic is a code generator that
consumes .pokipoki files to generate a header-only library that can be
included in a project.

libpokipoki is authored in C++ for obvious reasons, while pokic is
authored in Go due to the extensive text templating system used for
code generation and the lexer in the stdlib used for reading pokipoki
files.

poki-compiler/parser/output.go will probably be the file that needs
most looking at, as it's responsible for the code generation.

Cheers,
-- Carson Black


Re: Git merge workflow: reverse it?

2020-08-26 Thread Boudewijn Rempt
On Wednesday, 26 August 2020 10:32:24 CEST Ingo Klöcker wrote:

> Boud, please don't look with your Krita glasses on other projects. 

Well, this goes two ways, and when people argue for a certain workflow as the 
KDE workflow, then I'll have to note that that workflow only is fine for 
repositories that don't see much work. It is not best practice; it's make-do.

It's the same with the retirement of createtarball in favor of releaseme: the 
releaseme workflow of creating a tarball from a branch and only then tagging is 
wrong for actively maintained projects. 

It's the same with keeping translations in svn instead of in the project 
repository.

While we can recognize they make life simpler for people tasked making regular 
releases of a whole bunch of repositories that change very little, we'll also 
have to recognize that these policies deviate from what is seen as best 
practice in the rest of the world.

> In my opinion, there can't be a one-size-fits-all git merge workflow/policy.

Sure -- but I feel that not everyone in this thread actually realizes that -- 
that there are people who think that all of KDE does one thing, and that it's 
the best way of doing things for all the variety in KDE.

My idea of a normal development and release workflow is:

* An MR either for master or stable
* A new MR for the other branch, or cherry-picking if simple enough
* When releasing setting a tag
* Which generates a tarball from the repo -- for which reason the repo should 
include the translations
* Copying the resulting tarball from invent to files.kde.org -- preferably with 
a KDE generated signature so I don't have to do that myself.
* Start the binary builds (although, ideally, that would also be done 
automatically on the setting of a tag...)

-- 
https://www.krita.org




Re: Git merge workflow: reverse it?

2020-08-26 Thread Ingo Klöcker
On Mittwoch, 26. August 2020 09:59:16 CEST Boudewijn Rempt wrote:
> On Tuesday, 25 August 2020 23:44:02 CEST you wrote:
> > Or you can merge stable to master and be sure you won't forget anything.
> > Of course if master changed a lot you can't (easily) do that. But we
> > have a lot of repos that don't change very often and merging stable to
> > master works very well with them.
> 
> ...
> 
> > The problem is we don't always have a maintainer. A lot of apps are
> > community-maintained and if we wouldn't merge stable to master before a
> > new release we would reintroduce fixed bugs quite often.
> 
> Basically, what you're saying is that KDE releases a lot of software that
> just basically never changes, and apart from some translation work is
> actually unmaintained.

No. "Doesn't change very often" doesn't mean unmaintained. It could also mean 
feature-complete (at least from the point of view of the maintainer). The only 
significant work that still happens is bug fixing.

> I don't think that those projects, or rather repositories, since if there's
> no work being done, it's hard to see that as a project, should shape
> policy.

I agree to a certain point because unless the bug is really critical the 
maintainer could choose to fix the bug only in master.

> If a repo can get by with just merging stable to master, I don't think it's
> seeing meaningful development -- why should it even be released?

Because some bugs were fixed?

Boud, please don't look with your Krita glasses on other projects. A small 
application like Spectacle or something even smaller like the recently 
proposed markdownpart certainly has very different requirements on project 
management and software engineering than a large application like Krita. In 
particular, a small, more or less feature-complete application doesn't require 
large scale refactoring which would make merging stable to master a painful 
process.

I can see that for Krita merging stable to master isn't a viable workflow.

In my opinion, there can't be a one-size-fits-all git merge workflow/policy. 
Apparently, Krita does already deviate from the current "KDE-wide" "fix in 
stable and merge stable to master" policy that is challenged in this thread. 
In my opinion, the decision which policy (of maybe two sensible policies we 
can agree on) to use for a project should be left to the ones who are doing 
the work, i.e. for small, largely one-developer (== maintainer) projects it 
should be left to their maintainer. As for the release managers, they should 
simply take what's there. Merging stable to master shouldn't be part of their 
job, in my opinion.

Regards,
Ingo


signature.asc
Description: This is a digitally signed message part.


Re: Git merge workflow: reverse it?

2020-08-26 Thread Boudewijn Rempt
On Tuesday, 25 August 2020 23:16:52 CEST Elvis Angelaccio wrote:

> Now:
> * Test the fix on stable
> * Push to stable
> * Merge stable to master
> 
> After:
> * Test the fix on master
> * Push to master
> * Test the fix on stable
> * Cherry-pick to stable
> 
> In the second model I need to test twice because I can't change the
> stable branch without testing.
> 

Er... You don't even test master after merging something to it? 

-- 
https://www.krita.org




Re: Git merge workflow: reverse it?

2020-08-26 Thread Boudewijn Rempt
On Tuesday, 25 August 2020 23:44:02 CEST you wrote:

> Or you can merge stable to master and be sure you won't forget anything.
> Of course if master changed a lot you can't (easily) do that. But we
> have a lot of repos that don't change very often and merging stable to
> master works very well with them.

...


> The problem is we don't always have a maintainer. A lot of apps are
> community-maintained and if we wouldn't merge stable to master before a
> new release we would reintroduce fixed bugs quite often.

Basically, what you're saying is that KDE releases a lot of software that just 
basically never changes, and apart from some translation work is actually 
unmaintained. 

I don't think that those projects, or rather repositories, since if there's no 
work being done, it's hard to see that as a project, should shape policy.

If a repo can get by with just merging stable to master, I don't think it's 
seeing meaningful development -- why should it even be released?

-- 
https://www.krita.org