[Scummvm-devel] Yet another proposal for engine merge procedure.
Johannes Schickel
lordhoto at scummvm.org
Fri Nov 18 05:32:10 CET 2011
Hi,
recap of the last engine merge procedure discussion we had after the
dreamweb merge and which came up today again. I'll try to layout this so
we can easily move it to our wiki in case we reach an agreement here
(and if nobody cares about saying "I like it" nor "I dislike it", I am
fine with someone just moving it on the wiki).
Engine merge procedure
This page describes the procedure of merging a new engine into the main
ScummVM development line. It intends to provide guidance for both the
engine developers and the ScummVM team on the procedure to merge new
engines into ScummVM.
What needs to be done before you can ask for your engine to be merged
into ScummVM?
ScummVM is a project which focuses on reimplementation of adventure game
engines. We support a wide range of platforms. Due to these facts were
are a few requirements your engine has to fullfil before it has a chance
to be included in the ScummVM mainline.
We cover the really basic requirements here first:
* Your engine must target an 2D adventure game.
* All your code must follow our Code Formatting Conventions. It does not
have to be perfect, but it needs to follow the overall style. We will
happily point out issues and help you with the remaining issues.
* Your code should be reflecting the fact that you know our Coding
Conventions and try to implement them in our code. If you have questions
about specifics you are free to ask us.
* Your engine needs to be on github.
* The engine development history should not mess with non-engine related
code needlessly.
* Your code compiles with g++.
Furthermore we require a bit more from you, which isn't basic anymore:
* You will be becoming the maintainer for the engine. That gives you the
possibility to work on your engine in our master development branch. But
it also comes with responsibilities. You should be able to spend some
time handling incoming bugs for your engine, especially in release
phases. Furthermore we need you to be contactable, so we can discuss
issues in your engine or backend/middleware changes with you, so either
we or you can adapt your engine to these.
* Your code needs to be in a maintainable state. It should be written in
a way which makes it possible to fiddle with the code by knowing C++ and
maybe additional specifics about hardware when it comes to sound drivers
or similar.
* The game supported by your engine needs to be completable on at least
i386/amd64. You need to have time to adapt your code so it will work on
as much platforms as we support (and is feasible) OR help our porters or
other developers with it.
* Your engine needs to be in a state that we can easily include it in
the next release or at latest in the one afterwards.
How you ask for inclusion in ScummVM.
It is always a good idea to first come to our IRC channel and point
people to your engine. Even when you do not want it to be merged yet!
That will help you to get feedback on what you need to take care of when
you ever want your engine to be merged. There is always a developer or
even a few who will happily help you with your engine and answer general
questions.
The next step would be to drop a mail to our -devel mailing list. There
you can tell everyone working on ScummVM that you work on a new engine
and plan to bring it into a state so it is ready for the merge discussion.
Starting the pull request.
This is really easy, just open a pull request for your engine on github.
Also write a mail to our -devel mailing list.
The merge discussion.
This is the part were you and the ScummVM team discuss about the chances
of your engine to be merged and in the last instance even on how it will
be merged. You should have time to reply to the questions we have about
your engine and its code. In this phase we usually try to provide code
feedback too, so it would be nice if you could show us that you can work
with that.
There are minimal requirements before you engine will be merged:
* There is a delay of at least one week between your initial pull
request and -devel mail and the merge. In that time we will give all
ScummVM members the chance to check your engine and it state.
* All serious issues which arise in that time have to be taken care of
before the engine will be merged.
* The majority ScummVM core team members have to *explicitly* state that
they are fine with the merge. All other core team members have at least
told their stance on the merge.
How we proceeded from then on will be decided on a per case base.
If you have any feedback, whether it maybe ask for clarification, your
own proposals for additional lines or changes, please feel free to reply
to his.
I'm explicitly fine with moving it to our wiki as is (+ someone fixing
my horrible language). So if you guys think it's ready for that feel
free to do that.
// Johannes
More information about the Scummvm-devel
mailing list