[dia/neduard/update_readme] #30 Move what was in README to HACKING & Update README.



commit 1b6758a68bea29b813518401f878d5a80c4ee0b1
Author: Eduard Nicodei <eddnicodei gmail com>
Date:   Wed Jan 30 15:06:23 2019 +0000

    #30 Move what was in README to HACKING & Update README.
    
      - Reference https://gitlab.gnome.org/GNOME/dia/issues as main webpage
      - Add contact information: mailing list & IRC
      - Add 'We're "hiring" section'
      - Also use markdown for the files.

 HACKING              |  19 ---------
 README => HACKING.md |  66 ++++++++++++++++---------------
 README.md            | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 142 insertions(+), 51 deletions(-)
---
diff --git a/README b/HACKING.md
similarity index 80%
rename from README
rename to HACKING.md
index e2156d2b..dcdf387e 100644
--- a/README
+++ b/HACKING.md
@@ -1,53 +1,55 @@
-Dia is a program for drawing structured diagrams.
+Feel free to hack away at dia, but you're advised to contact
+the dia maintainers and/or the mailing list if you do any
+larger work --- this is in everyone's interest so that work is
+not duplicated.
 
-Dia is a GNU program, and is Free Software.  See the COPYING file for
-the licence.
+For more information on the authors, maintainers, etc., of dia,
+please see the file AUTHORS (dynamically generated).
 
-Documentation is a bit sparse at the moment.  Some info can be
-found in the doc/ directory.
+Visit the dia webpage at http://www.gnome.org/projects/dia/
+for more information on the dia mailing list and many other
+dia-related things.
 
 --
 
-I haven't had time to write anything here yet.
-Read INSTALL for some brief installation instructions.
+If you need to alter the list of contributors, documentors,
+etc., the authoritative list is in app/authors.h.
 
-Homepage for Dia is at:
- https://wiki.gnome.org/Apps/Dia
 
 Some comments about the source:
 -------------------------------
 
- Everything on the screen 'inherits' from the structure Object 
+ Everything on the screen 'inherits' from the structure Object
 in lib/object.h. (ps. this is a nice place to start reading the code.).
-Inherits in C means (as in gtk) that it begins with a copy of that structure. 
-Some base classes exists in lib/, like element.h (for doing 'box-like' 
-objects), connection.h (for doing 'line-like' objects), orth_conn.h (for doing 
-connections with orthogonal lines, like the uml-stuff) and render_object.h 
-(for doing picture-like objects). These base classes are then subclassed in 
-the different object in the object-libraries like objects/standard object/UML 
+Inherits in C means (as in gtk) that it begins with a copy of that structure.
+Some base classes exists in lib/, like element.h (for doing 'box-like'
+objects), connection.h (for doing 'line-like' objects), orth_conn.h (for doing
+connections with orthogonal lines, like the uml-stuff) and render_object.h
+(for doing picture-like objects). These base classes are then subclassed in
+the different object in the object-libraries like objects/standard object/UML
 and object/network.
 
- The objects work by filling out two structures that the main program (app/*) 
-uses to handle the objects. The ObjectType structure which consists of some 
-info and a pointer to the type-operations (create+load+save). There's one 
-ObjectType per object type currently loaded. Then the Object structure, there 
-exists a copy of this for each object of the kind on screen (and in 
-copy-buffers). This contains some info like: type, bounding_box, position, 
-handles (the rectangles you move with the mouse) and connections. It also 
-contains a pointer to the object-operations. These are called from the main 
-program when if wants the object to do something. All ops take an Object as 
-the first argument. This is usually casted to the subtype in the function 
-headed (gives all those pita warnings) so that you directly can use the info 
-stored in the subclasses. Most ops are quite self-describing, and the code can 
-be copy-pasted from an object like the one you're doing. Rendering to 
-screen/postscript is done through a 'Renderer' abstraction that can be found 
+ The objects work by filling out two structures that the main program (app/*)
+uses to handle the objects. The ObjectType structure which consists of some
+info and a pointer to the type-operations (create+load+save). There's one
+ObjectType per object type currently loaded. Then the Object structure, there
+exists a copy of this for each object of the kind on screen (and in
+copy-buffers). This contains some info like: type, bounding_box, position,
+handles (the rectangles you move with the mouse) and connections. It also
+contains a pointer to the object-operations. These are called from the main
+program when if wants the object to do something. All ops take an Object as
+the first argument. This is usually casted to the subtype in the function
+headed (gives all those pita warnings) so that you directly can use the info
+stored in the subclasses. Most ops are quite self-describing, and the code can
+be copy-pasted from an object like the one you're doing. Rendering to
+screen/postscript is done through a 'Renderer' abstraction that can be found
 in lib/render.h.
- 
+
 XML based objects:
 ------------------
 You can (from version 0.80) create new objects using a SVG like XML languange.
 The file doc/custom-shapes has more information about this.
- 
+
 Note on handles and connection points:
 --------------------------------------
 
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..1e6ff2b5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,108 @@
+# About
+
+Dia is a program for drawing structured diagrams.
+
+Dia is a GNU program, and is Free Software.  See the COPYING file for the licence.
+
+The official homepage for Dia is at: https://gitlab.gnome.org/GNOME/dia
+
+General documentation can be found in the doc/ directory.
+
+If you are thinking of contributing (either code or diagrams), please see (HACKING)[HACKING].
+
+For compilation and installation instructions please see (INSTALL)[INSTALL].
+
+# Bug reporting
+
+Please use the issue tracker on the GitLab page: https://gitlab.gnome.org/GNOME/dia/issues
+
+First, have a look at both the existing open & closed issues: maybe somebody has noticed the issues as
+well, or maybe it's included in a new version.
+
+If the issue is not there, please report it.  If it, is give it a "thumbs-up" or "+1".  This helps us
+prioritise them.
+
+# Contacting us
+
+If you use Dia, we would love to hear from you!
+
+Please feel free to send us comments/feedback/questions on our mailing list:
+https://mail.gnome.org/mailman/listinfo/dia-list
+
+If you don't want to send a full email or just want to say "Hi!", we also hang out on IRC on GimpNet
+(irc.gimp.org)[irc.gimp.org] on `#dia-editor` channel.  Dia has been inactive for a few years now so
+it is very nice when we hear from people using it.
+
+# We're "hiring"
+
+There is a lot of work to be done in order to bring Dia up to date.  Part of the reason why Dia has
+been around for so long is that it is very stable.  We intend to keep it that way.
+
+## General contributions
+
+We would love to have more people on-board helping improving Dia.  For that, the only requirement is
+patience :slight_smile:
+Software quality comes not from the code itself, but how people develop that code.  As such, we need
+to be very nitpicky with what we accept into master and _when_.
+
+Do not be offended: we aren't trying to be mean, control-freaks or in any way belittle your work,
+it's simply that good things take time and there's no way to rush quality.
+With that in mind, we welcome all contributions, no matter how tiny so please get in touch.
+
+## Windows build maintainer
+
+We currently need somebody to look after the Windows builds and packages.  Most of us use Linux as
+our main operating system, so if you use Windows and would like to program on Dia on Windows, for
+example, getting it running on Visual Studio + Meson, please get in touch.  Note that this involves
+doing full development on Windows and is not limited to just getting it to compile.
+
+## MacOS build maintainer
+
+Similarly to the above, we need somebody to ensure Dia builds and runs well on macOS.
+
+## Documentation writers & translators (German, French, Basque, Polish etc)
+
+Much of the documentation in doc/ is outdated.  We need somebody to go through the documents, check
+what is good, update them and then maintain them.  If you enjoy or want to practice technical writing
+or would be interested in helping with the translation we would love to hear from you!
+
+## Testers
+
+One simple way to ensure Dia works well for everybody is to test it on as many machines as possible.
+This role is simple and is a very good way to get more familiar with the Dia codebase.  Plus, the more
+people Dia works for from source, the easier it is for package maintainers and the easier it is for
+anybody to contribute patches:
+
+1. Obtain a machine (ARM, ARM64, x86_64, SPARC, doesn't matter) in one or more of the following ways:
+  1. Local laptop, desktop, etc
+  2. Premade box from https://www.osboxes.org/ or similar
+  3. Instal a virtual machine from ISO
+2. Follow the compilation & installation instructions for Dia
+3. See if you can get all the features of Dia running.
+  1. Try various meson options: https://mesonbuild.com/Configuring-a-build-directory.html
+  2. Try to install dependencies in a different order.
+  3. Try a different compiler
+4. If anything is off and hasn't been reported before, let us know!  If it has been reported,
+give the issue a "+1".
+5. If you've tried your best and haven't found anything wrong, also give us a shout :-)
+Let us know what you tried and why you think there aren't any issues on the machine you tested it on.
+
+## Code Gardeners
+
+A few issues are marked as [cleanup].  Normally programmers are interested in creating things, not
+removing them.  If you like cleanning code up and believe that "perfection is attained, not when there
+is nothing more to add, but when there's nothing left to take away" (Antoine de Saint Exupéry), then
+by all means, we look forward seeing your merge requests.
+
+## Public Relations / Marketing
+
+There are many places where people might ask questions, or discuss about Dia that are not actively
+monitored by developers.  These, for the time being, include:
+ - [SourceForge Tickets](https://sourceforge.net/p/dia-installer/_list/tickets)
+ - [SourceForge Discussion](https://sourceforge.net/p/dia-installer/discussion/)
+ - [Dia 
Bugzilla](https://bugzilla.gnome.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=NEEDINFO&list_id=325564&order=Importance&product=dia&query_format=advanced)
+   - This will end up being removed, but for the time being some might still accidentally use it.
+ - Social media, reddit, etc.
+If you would like to help, you can do so by monitoring these channels and providing support to users.
+This can be as simple as redirecting them to the Gitlab issues if they have a problem
+(or reporting the problem for them), or to the mailing list / IRC if they have a question.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]