Application for permission to create full projects
OOE = Object Oriented Examples = One Of Each
This application includes links to external resources on a dedicated demonstration site.
This application meets the Project application checklist (see below).
Link to project (sandbox) page
https://drupal.org/sandbox/webel/2120905
Link to project repository viewer
http://cgit.drupalcode.org/sandbox-webel-2120905
Git clone command
git clone --branch 7.x-1.x git://git.drupal.org/sandbox/webel/2120905.git
Detailed description of what the 'OOE = Object Oriented Examples = One Of Each' project does
The Object Oriented Examples (OOE) project is a unique educational tutorial module for Drupal7 intended primarily for enthusiasts of graphical software engineering with Unified Modeling Language (UML) and fans of object-oriented Design Patterns. It may also be of interest to advocates and practitioners of object-oriented software engineering who are not yet familiar with UML, especially those with some background in Java (or similar OO languages).
This is an actively maintained development project, with a dedicated live demonstration site and a gallery of graphical Unified Modeling Language (UML) diagrams of the OOE system, which illustrate the main purpose of this module and serve also as a tutorial for other graphical UML enthusiasts.
OOE may also be taken to mean "One Of Each", as it endeavours to represent one of each of the capabilities of Drupal7 module development in purely object-oriented form, starting with object-oriented versions of some well known existing Drupal7 tutorials and examples.
It achieves this by using a special "bridge" between the Drupal7 contributed module API (via a specially organised .module file) and a completely object-oriented OOE world that uses a special PHP recipe that is (more) amenable to reverse engineering to graphical UML, currently optimised for processing with the PEAR:PHP_UML script into XMI and graphical modelling in the MagicDraw UML tool (although once in XMI any decent UML tool could be used).
When using the OOE classes one never has to deal directly with Drupal "by convention" structured arrays; instead, the Drupal arrays are encapsulated completely, and the OOE classes know how to build and hand off valid Drupal structured arrays to the Drupal contributed module API. By encapsulating Drupal structured arrays OOE also supports IDE prompting on operations/methods (and their tightly bound documentation) that is not possible with Drupal7's "by convention" structured arrays, as demonstrated in NetBeans IDE in this short video.
Finally, when using OOE, one does not need to implement complex behaviours in the usual hooks, page handlers, and form handlers in the .module file; instead, OOE supports fully object-oriented page controllers and form controllers (although this currently requires a small and harmless tweak to the Drupal7 core's form.inc, see below).
Requirements
The OOE module depends (as a "tip of the hat") on the experimental Page controller project.
It requires also the X Autoload class loader.
It also currently requires a small and completely harmless tweak to the Drupal7 form.inc, as described at:
The need for the tweaks is also well explained in those issue reports. It's very simple to simply edit the Drupal7 core form.inc file after the code examples in the issue reports above, or using this guide.
This is not an attempt to HACK Drupal core ! On the contrary, it is hoped that the community will review and support these harmless changes - made only to support static class method callbacks in Drupal7 - so that they will be included in Drupal-7.37.
UPDATE: Download bundle with object-oriented form controller support now available
The minor, harmless, tweaks to Drupal7 core's includes/forms.inc and includes/ajax.inc required in order to support static class methods for object-oriented controllers have now been provided as a patch for Drupal-7.x-dev as of 2015-04-04 (Drupal-7.36+), as explained at https://www.drupal.org/node/2166371#comment-9792067.
Also, to make it easier for the Drupal developer community to review and use this experimental, educational, OO tutorial module, I have now provided 2 easy ways to download and test it, with detailed instructions at these external links:
- Download: a Drupal-7.x-dev patch to support the OO form controllers of the OOE tutorial module
- Download: OOE bundle with adapted Drupal-7.36 and installation instructions
Related projects (and how they differ).
The Ghost project also demonstrates object-oriented page and form controllers for Drupal7, but it is not conceived as a graphical UML-friendly project, and does not endeavour to map the Drupal7 system (including blocks, menus, menu items, rendering etc.) into an object-oriented bridge API for Drupal7. Page and form controllers are just a small part of OOE.
Q: Is OOE an attempt at an object-oriented version of Drupal7 core (or a "better Drupal7") ?
No. OOE is designed specifically to work with the Drupal7 contributed module API, and to offer an object-oriented bridge to it. However, to the extent that it maps out the Drupal7 contributed module API in a UML-friendly object-oriented form it reveals a lot about Drupal7. OOE does not in any sense repeat the functionality of Drupal7 core.
Q: Is OOE already a complete object-oriented API mapping the entire Drupal7 system suitable for development of other object-oriented modules ?
No. So far it is deliberately only a functioning proof-of-concept with an emphasis on introducing a UML-amenable PHP coding style to the Drupal community, based on a few well known Drupal7 examples. But there is no reason it could not be extended to become a fully-fledged object-oriented module development system for Drupal7.
Q: But what about Drupal8 ? Isn't that object-oriented already ?
Drupal8 introduces an increasing degree of object-orientation, but is not developed specifically with graphical UML software engineering in mind and is not particularly UML friendly. A Drupal8 version of the UML-friendlier OOE demonstration module may in future be developed for Drupal8 also. (In any case, when the OOE module was commenced, Drupal8 was not yet mature enough to support a live demonstration site.)
Some information about my background and experience with Drupal
The Object Oriented Examples (OOE) module is developed by Dr Darren Kelly of Webel IT Australia, specialists in PHP-driven Drupal CMS web engineering, graphical UML, graphical SysML, Java and XML.
Although OOE is the first contributed module by Webel for Drupal.org, Webel has developed many custom Drupal modules for clients, and has used Drupal CMS for about 8 years.
In addition to using Drupal CMS for developing web sites for clients, Webel has used Drupal CMS for many years to develop educational web sites promoting graphical software engineering with Unified Modeling Language (UML), graphical systems engineering with Systems Modeling Language (SysML), as well as Java and XML/XML Schema engineering, and of course PHP-driven Drupal CMS too.
Project application checklist
1. Basic application checks
1.1 Ensure your application contains a repository and project page link.
Done. See top.
1.2 Ensure your project is not a duplication.
Done. See Related Projects above.
1.3 Ensure you don't have multiple applications.
Done. This is the 1st and only application.
2. Basic repository checks
2.1 Ensure the repository actually contains code.
Done. Full Git clone also performed and checked.
2.2 Ensure you are working in a version specific branch.
Done. Working on 7.x-1.x (and can Git clone ok).
3. Security Review
3.1 Ensure the project does not contain any security issues.
Done.
4. Licensing checks
4.1 Ensure the repository does not contain a ‘LICENSE.txt’ file.
Done.
4.2 Ensure the repository does not contain any 3rd party (non-GPL) code.
Done.
5. Documentation checks
5.1 Ensure the project page contains detailed information.
Done.
5.2 Ensure the repository contains a detailed README.txt
Done.
5.3 Ensure the code contains a well-balanced amount of inline-comments.
Because this module is conceived as and educational tutorial module for other Drupal developers (for those developers interested in graphical UML and/or OO techniques) this module contains particularly verbose inline comments, including clearly referenced quotes from Drupal.org docs and other non-OO Drupal.org tutorials and examples for Drupal7.
It also employs inline comments to comment out some code that is deliberately left in for educational purposes (and in some cases to illustrate what does not work).
6. Coding standards and style
6.1 Run an automated review and ensure there are no major issues.
Seldom in the history of Drupal contributed module development has anybody spent so much time examining Coder and the Coder rules, discussing/reporting issues with Coder, and/or discussing and/or challenging the Drupal coding and documentation standards. The developer in fact spent some weeks alone on this matter.
Coder has been used to inspect every single code file, however the code deliberately does not pass the current Coder rules, primarily because a very particular UML-amenable PHP coding style is employed (and must be used to support better reverse engineering to XMI/UML), but also because the developer contests a number of Drupal coding standards as clearly not yet very OO friendly and in some cases clearly inconsistent.
Please note: it is not possible to simply put this UML-dedicated project through a PHP code manipulation ("correction") tool, as it would break the synchronisation between the PHP project and the UML XMI project files. This is clearly a very special case.
All line-end whitespace has been removed (even though PHP does not care about it) as Coder requires.
Full stops (however unnecessary for one word comments like '// DEBUG.') have been included at the end of the line of most inline comments, except where inline comments are used to comment out code (see below).
A space has been left after most inline comment markers and before the comment text (like this // DEBUG., not '//DEBUG.'). This also does not work well when using inline comments on code (see below).
The capital TRUE, FALSE, NULL has now been used (all lower case forms replaced/converted).
The developer rejects completely - and with very good reason - the use of the verbose 'Interface' suffix on interfaces, preferring the concise, clear, and promptable 'I' prefix. This superior, UML-friendlier practice will not under any circumstances be changed by this developer for this UML-oriented project, where graphical UML diagrams and UML Interface symbols make it clear what is and what is not an interface. Please see: Please remove this requirement: 'WARNING | Interface names should always have the suffix "Interface"'.
As all files (except for the .module file) contain only either a single Interface or a single Class, with documentation in the Class or Interface header doc block, the developer does not include a description in any @file doc header, and only includes the class or interface name, not the namespace, as that practice is redundant and fragile against repacking/refactoring in tools like NetBeans. Please see Please relax requirement for @file when using OO Class or Interface per file: 'ERROR | Missing file doc comment' updated. (As a concession the @file is included, but still considered completely redundant for pure OO.)
The developer completely rejects the current requirement that parameters of methods of classes should use $lower_case as inconsistent, especially for setters, as argued here (OO: Coder complains about camel caps (camelCase) argument to setter method in Class ). Instead, the consistent "Java like" practice of $camelCase for both method parameters and class variables is used, as well as for local variables. Please note that some vendor code included in the Drupal8 core downloads also uses this practice, and with very good reason, because it's consistent and sensible and has been used by OO advocates (especially many Java coders) for a very long time.
The developer insists that inline comments should be permitted to comment out code, and that in some cases such commented out code should be left even in "finished" projects (are they ever ?) and when this is done it is (for the sake of the IDE) not a good idea to leave a space before the code after the comment markers. Clearly, if inline comments are used for code, then the line will not end a full stop (period '.'). Please see:
- Commented out code blocks using inline comments give multiple indentation errors.
In some cases long URLS are used with inline comment to include references to PHP code tips: Please permit long URL text in inline comments in the code area (not in the docblock).
In some cases single quotation marks 'around quoted text' are used in inline comments to indicate that Drupal.org docs or other examples are quoted: Permit punctuation (like quotation mark) at start for function comment.
Although the developer also does not agree with this Drupal recommendation, and effort has been made to reduce the use of inline comments after code statements: Please relax rule for inline Comments: 'Comments may not appear after statements'.
In some cases the developer includes (for educational purposes) parameter indicators in @see docs, which trip Coder but not the API module. Please see: Coder does not accept function parameter indicators in @see (but API module does).
In some cases (again consistent with some common Java conventions) CAPITALS_WITH_UNDERSCORES are used for static final class variables that are to act like constants. This matter has not been fully resolved: OO: Coding standards: permit CAPITALS_WITH_UNDERSCORES for static class variables
So. Nobody can say I didn't at least try hard. Please see also my suggestion for offering Drupal modules together with a Coder configuration file: Advanced feature idea: Coder strict mode (applies all rules) and user selectable rule switches, together with Coder configuration file for submission with a module.
7. API and best practices Review
7.1 Ensure you are using Drupal's API correctly.
There is one known major problem area discussed in detail here: This requirement is at odds with OO encapsulation: WARNING | Only string literals should be passed to t() where possible. The current Drupal translation registry strategy is not compatible with translation of some dynamically generated strings or with OO encapsulation of strings as variables to which translation policies are applied "after the fact". The developer is completely aware of the currently recommended practice for t() and the reasons for it, but still seeks a strategy more compatible with OO encapsulation (than say translation with placeholders). The matter may be addressed in future releases, but not yet here. For the time being, this project (with very special aims) is known to be not completely translatable.
[EDIT: since the original posting, a significant effort has been made to make the project more compatible with the recommended usage of t() and the Drupal localisation registry strategy, in some cases at the expense of the OO encapsulation of strings. Please see the recent commits and also these forum postings: Support » Translations: Concerning recommendations for internal links using placeholders and Support » Translations: Concerning the difficulty in achieving Don't Repeat Yourself (DRY) coding when using placeholder strings compatible with t().]
Also, one database variable is introduced (in an object-oriented adaptation of the well known Current Posts example) that is not yet removed by an uninstall facility; this will be addressed in future releases.
Concerning HTML output and theming. This module demonstrates encapsulation of and generation of valid Drupal7 render arrays using special OOE Render Classes. There is some use of theming functions and theming hints already included. But advanced theming is not yet handled by the demonstration (not yet encapsulated using OOE classes), it is the next major topic for future releases.
Comments
Comment #1
PA robot commentedThere are some errors reported by automated review tools, did you already check them? See http://pareview.sh/pareview/httpgitdrupalorgsandboxwebel2120905git
We are currently quite busy with all the project applications and we prefer projects with a review bonus. Please help reviewing and put yourself on the high priority list, then we will take a look at your project right away :-)
Also, you should get your friends, colleagues or other community members involved to review this application. Let them go through the review checklist and post a comment that sets this issue to "needs work" (they found some problems with the project) or "reviewed & tested by the community" (they found no major flaws).
I'm a robot and this is an automated message from Project Applications Scraper.
Comment #2
webel commentedComment #3
webel commentedConcerning preview review. It claims:
The ooe.info file does have version in there, but commented out, including comments about the version tag (this is deliberate as it is supposed to be an educational module). From http://cgit.drupalcode.org/sandbox-webel-2120905/tree/ooe.info with quotes from Drupal.org documentation:
Paraview should be improved to only report on this only if 'version' is explicitly used.
Comment #4
webel commentedConcerning whitespace report. The Paraview reports on whitespace at the end of lines in some comment docblocks, but Coder does not. For example, on the file lib/Drupal/ooe/Menu/DefaultMenuItem.php it reports on whitespace 100s of times, but when run through Coder 7.x-2.0 it detects no whitespace.
I am using NetBeans IDE and it seems to insert a whitespace after any empty docblock '* ' line. This is very hard to remove, and also completely harmless anyway.
[EDIT: external links to assist with using NetBeans with Coder/PAReview Coding Standards:
- TIP: NetBeans: removing trailing whitespace (to meet the Drupal Coding Standards and pass Coder/PHP_CodeSniffer)
- TIP: PHPCSMD: a plugin for PHP Code Sniffer compatible with NetBeans8 and the Drupal Coding Standards from Coder
]
Comment #5
webel commentedPlease note that I can't, for this special UML-friendly project. under any circumstances simply apply PHPCBF to "clean up" this code, it would completely corrupt the synchronisation of the code w.r.t. to the UML model. In any case, as explained above, I strongly contest some of the current Coder rules for OO projects, and PHPCBF would destroy my more systematic and OO friendly coding style.
Comment #6
webel commentedParaview is reporting on type hinting of parameters to operations/methods. For example, in the following from MenuItemSet:
The paraview reports:
51 | ERROR | [ ] Expected type hint "IMenuItem[]"; found "array" for $menuItemsIt seems to be reporting on the parameter with type hint '(array $menuItems)'.
There is no mention of this kind of type hinting under http://php.net/manual/en/language.oop5.typehinting.php (search for '[]').
And Coder does not seem to report on this either.
Comment #7
webel commentedCoder 7.x-2.0 is not catching whitespace at end of docblock parameter declaration. Here I have appended a whitespace as an underscore after $menuItems
The Paraview is reporting on this (copiously as it turns out because NetBeans leaves whitespaces after such on hitting RETURN) as:
Comment #8
webel commentedParaview is falsely reporting that there are the incorrect number of lines before parameter docs when @link @endlink is used. From IMenuItem.php:
Paraview gives:
58 | ERROR | [ ] There must be exactly one blank line before the tags in a doc comment[EDIT: Or it might be because of a whitespace char on the line above, and nothing to do with @link @endlink, I've marked it with an underscore above.]
Coder 7.x-2.0 does not trip on this.
Comment #9
PA robot commentedClosing due to lack of activity. If you are still working on this application, you should fix all known problems and then set the status to "Needs review". (See also the project application workflow).
I'm a robot and this is an automated message from Project Applications Scraper.
Comment #10
webel commentedUpdate on this application from the developer, and response to deactivation of this module submission by the robot.
The Object Oriented Examples (OOE) project for Drupal7 is very active, and is the result of a very intensive and extended period of development by the author, although until project posting approval has been received, all further development is on hold.
Reviewing this project according to the Drupal module development standards may require more human attention than most other modules.
The module is for academic/educational purposes only. The primary, and significant, purpose of the module is to demonstrate a PHP coding recipe for truly object-oriented Drupal modules that is amenable to reverse engineering to graphical Unified Modeling Language (UML), as explained at http://drupal7demo.webel.com.au/ooe and demonstrated at this unique UML diagrams gallery for the module. This special aim, a UML-friendly Drupal7 module, requires a special adaptations of the Drupal coding standards, as explained in detail at the demo web site.
Because of the special aims of this module, graphical UML-friendliness, it is impossible for a robot to interpret the module's PHP code, coding style, etc. as it would for another module.
Finally, as explained in the original application, you can't simply download and run this module against Drupal7 (yet), because integration of its object-oriented controllers requires 2 minor tweaks to Drupal7 core, as explained at the demo web site at OOE: special tweaks to Drupal7 core's form.inc required to support object-oriented form controllers (where it is explained also how one can easily make those core tweaks in PHP code without any adverse side-effects). You can see the module functioning live (with those Drupal7 core tweaks in place) at http://drupal7demo.webel.com.au/module/ooe.
I appreciate that these matters perhaps require more time investment from the reviewers than most other modules, but I contend that this OOE module, which is perhaps the first ever Drupal7 module to offer completely consistent graphical Unified Modeling Language (UML), makes an important contribution to Drupal that warrants very detailed examination.
Comment #11
InviteReferrals commentedRemove "version" from the ./ooe.info file, it will be added by drupal.org packaging automatically.
PHP Fatal error: Call-time pass-by-reference has been removed in ./lib/Drupal/ooe/Demo/Form/DemoFormController.php on line 129
Errors parsing ./lib/Drupal/ooe/Demo/Form/DemoFormController.php
Also solve the pareview.sh errors
http://pareview.sh/pareview/httpgitdrupalorgsandboxwebel2120905git
Comment #12
webel commentedFrom Git coding standards fix branch commit (since merged onto 7.x-1.x):
There are also some bugs in Coder (still present in 8.x-2.1). Placing @link at the beginning of a docblock line can cause this error:
Placing a single word before a @link prevents this, but then often causes the line with the @link to extend over 80 characters
- #2463707: @link @endlink starting 2nd line causes 'Parameter tags must be defined first in a doc comment' in methods
- #2463401: @link @endlink starting 2nd line causes 'Doc comment long description must end with a full stop'
- #2463397: @link @endlink alone on 2nd line gives 'There must be exactly one blank line before the tags in a doc comment'
See also:
- #2464123: Remove the requirement that no blank line follow an inline comment
- #2463425: Permit exclamation mark ! punctuation at end of parameter comment
- #2463633: Interface methods without explicit public visibility modifier should not trigger 'ERROR Visibility must be declared on method'
- #2306409: Inline comments: not all cases should require a full stop, exclamation mark, or question
Comment #13
klausiI think the review bonus tag was added by accident.
Comment #14
webel commentedIMPORTANT UPDATE: this module requires some minor, harmless, tweaks to Drupal7 core's includes/forms.inc and includes/ajax.inc in order to support static class methods for object-oriented controllers. A patch for Drupal-7.x-dev as of 2015-04-04 (Drupal-7.36+) has now been provided for this, as explained at https://www.drupal.org/node/2166371#comment-9792067.
This is not an attempt to HACK Drupal core ! On the contrary, it is hoped that the community will review and support these harmless changes - made only to support static class method callbacks in Drupal7 - so that they will be included in Drupal-7.37.
To make it easier for the Drupal developer community to review and use this experimental, educational, OO tutorial module, I have now provided 2 easy ways to download and test it, with detailed instructions at these external links:
- Download: a Drupal-7.x-dev patch to support the OO form controllers of the OOE tutorial module
- Download: OOE bundle with adapted Drupal-7.36 and installation instructions
Comment #15
webel commentedHaving waited since Aug 2014 for ongoing human attention I am now moving this to status 'critical' in accordance with the Application Review Timelines.
Comment #16
webel commentedUpdate concerning coding standards and Coder 8.x-2.x. From commit message, merged onto ooe-7.x-1.x:
Comment #17
himmatbhatia commentedHello,
1) Git Clone url is improper, It should be this. Your git clone command should be like below should have directory name. New user will get confused.
git clone --branch 7.x-1.x git://git.drupal.org/sandbox/webel/2120905.git webel
Thanks
Comment #18
webel commented@himmatbhatia wrote:
Why ? The Apply for permission to create full projects page says:
If I do this it gives:
Comment #19
webel commentedComment #20
fabianx commentedRTBC - Caveat: I have not read every line of code as this project is huge.
As D8 Core subsystem maintainer I am very familiar with encapsulating procedural functions in OO code and have written a module doing so partially myself (service_container). Therefore I feel qualified to review this application.
However what I have seen is mostly wrapping code and nothing security critical missing was standing out.
The author demonstrates that he has an understanding of Drupal 7 APIs and takes standards seriously.
A last word of advice:
Do not submit huge projects like this as a project application, reviewing this properly is way beyond what anyone can do in their free time (I do code review as part of the Drupal 8 core process and as part of my dayjob).
Just one of the subsystem folders, block IBlock, Render or whatever would have been suitable enough to be both useful enough on its own and still reviewable.
So if this RTBC does not go through, please provide ooe_block or ooe_render or whatever as project application target and I can guarantee that it will go in way faster than this code base.
Comment #21
webel commented@Fabianx
Your suggestions are most welcome and very constructive.
> Do not submit huge projects like this as a project application, ..
Just to be clear, the reason that it is huge is that is trying to demonstrate no less that an alternative possible future for Drupal, for those who are interested in pure OO and in UML-friendlier PHP, as well as model-driven development for PHP-driven Drupal. In fact, the module only has a few small active demonstration packages and examples, but ultimately the idea is to provide a pure OO bridge for Drupal7 and if needed (because it is not pure OO and is not UML friendly) for D8,
I have another module called Flag Plus that might fit the bill, it adds a couple of features to the Flag module that I use regularly.
But it (like this OOE module) does not - because I refuse to do it - use 2 of the current coding standards recommendations:
- #2474561: Coding standard: inconsistent requirement that arguments to setters methods should be $lower_case when private variable and setter methods are camelCase() (because using $lower_case as the name of a setter method argument foro a private variable that is $camelCase is one of the stupidest things I have seen in over 3 decades of programming).
- #2304937: Please remove this requirement: 'WARNING | Interface names should always have the suffix "Interface"' (because with any modern IDE, and when using "design by contract" and "design against and interface" - and especially with UML - is completely unnecessary, in the same way that sticking 'Class' in every Class name is, and I refuse to do it, because I find it utterly horrible for the reasons explained there).
None of my modules, all of which demonstrate UML with PHP, will ever use such ghastly coding standards.
In any case, It is not clear to me that one could make perhaps also submit a 2nd Project Applications module; I have hesitated to withdraw this OOE one, having already waited one year.
> please provide ooe_block or ooe_render or whatever as project application target and I can guarantee that it will go in way faster than this code base.
This is a good suggestion, I had not thought of that.
The problem however is that until the matter of D7 forms.inc excluding object-oriented form controllers, the whole ecosystem in which the OOE Packages live can't be easily tested by people. I will revisit this idea of yours in mid August to see whether I can isolate some part that can be tested as a standalone module.
Or there is another way
Of course, Drupal.org could finally get rid of this incredibly painful Project Applications process that almost no other open source effort uses, so that people can simply contribute instead of having their time massively wasted: As argued by someone else very well here Drupal is still a gated community.
As far as I am concerned, this entire review process is nothing but a painful imposition that should be chucked in the bin.
So we can give. Easily. Without fuss. Without this pain.
Because the Project Applications process does not work; it just turns good people off
Webel
Comment #22
fabianx commented#21: I do not suggest that you do anything at this point. After all I have taken the time to review the project in depth and put this issue to RTBC - just in case it gets pushed back by an admin, further action is needed.
Please however do understand that the process is one of volunteers and you cannot expect someone to read thousands of lines of code. In this case you made your life much more difficult than it needed to be ...
I am just saying: There is always another way to do something and some ways are simpler, others are more difficult.
I hope this gets through and you can finally publish all you want. :)
Have fun!
Comment #23
klausiPlease note that large projects are perfectly fine for submission, since we only do a sanity check in our reviews. If you are confident that the applicant knows what they are doing after reviewing the code for 10 minutes then you can stop and mark the application as RTBC. No need to read every line of code. The goal is to spot the usual security and licensing mistakes new contributors make, not an hours taking detailed code audit.
Comment #24
webel commented@Fabianx
Many, many, thanks.
I appreciate that your other feedback is very constructively intended. To be clear (for other potential readers):
I don't. I don't even want a Drupal Project Applications process, or to inflict it on other volunteers. I did not ever ask for it. I just want to promote my module out of the sandbox.
Certain Drupal.org members - most of whom already have "the keys to the kingdom" - do (expect others to spent time reading such code).
No I did not. The existence of the Drupal project applications process did. All I did was develop a module according to its own nature.
Same point applies: I don't want a Drupal Project Applications process, or to inflict it on other volunteers. I just want to promote my module out of the sandbox. Certain Drupal.org people with the keys to the kingdom made it harder that it needed to be. Much, much harder.
And I should not have to deliberately develop a module other than this, just because of a process that is clearly not working to the advantage of anybody anyway.
Also, your sensible suggestion that I could for example isolate part of my large project as a distinct module has in my case the extra burden that I have an existing set of synched UML diagrams for educational purposes (not something that everybody else has to consider), and I would have to redo many of them if I split my OOE project into separate smaller modules, which would therefore be even more work for me.
It would (if indeed now still needed) be easier for me to (after one year's waiting) to withdraw this one, and post instead a smaller module like my Flag Plus sandbox project. Which would be very sad indeed, to see no benefit from my effort to date regarding this Project Applications process.
Webel
Comment #25
cweagansThanks for your contribution!
I updated your account so you can promote this to a full project and also create new projects as either a sandbox or a "full" project.
Here are some recommended readings to help with excellent maintainership:
You can find lots more contributors chatting on IRC in #drupal-contribute. So, come hang out and stay involved!
Thanks, also, for your patience with the review process. Anyone is welcome to participate in the review process. Please consider reviewing other projects that are pending review. I encourage you to learn more about that process and join the group of reviewers.
Thanks to the dedicated reviewer(s) as well.
Comment #26
webel commented@cweagans
Thanks, this means a huge amount to me, having waited so long, and having put so much work into this comprehensive experimental educational OO module.
I will take advantage of this to promote 2 modules from the sandbox in early August (am busy with a contract right now and am also having some Git problems I need to address first).