[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