Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
python3-dev is another dependency of the Python bindings
[simgrid.git] / docs / source / community.rst
index 88d5a5f..ec8c3db 100644 (file)
@@ -20,39 +20,33 @@ ask the community for help. If you do not have a question, just come
 to us and say hello! We love earing about how people use SimGrid.
 
  - For questions or remarks, drop us an email on the `user mailing
-   list <mailto:simgrid-user@lists.gforge.inria.fr>`_ (to subscribe,
+   list <mailto:simgrid-community@inria.fr>`_ (to subscribe,
    visit the `web interface
-   <http://lists.gforge.inria.fr/mailman/listinfo/simgrid-user>`_);
-   you can also check out `our archives
-   <http://lists.gforge.inria.fr/pipermail/simgrid-user/>`_.  We
-   prefer you to **not use private emails**. SimGrid is an open
+   <https://sympa.inria.fr/sympa/info/simgrid-community>`__).
+   We prefer you to **not use private emails**. SimGrid is an open
    framework, and you never know who have the time and knowledge to
    answer your question, so please keep messages on the public mailing
    list.
- - Join us on IRC and ask your question directly on the channel \#simgrid at
-   ``irc.debian.org``
-   (or use the ugly `web interface <https://webchat.oftc.net/?channels=%23simgrid>`_
-   if you don't have a
-   `real client <https://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_clients>`_
-   installed). When no non-french speaker are connected, we usually
-   chat in french on this channel, but we do switch back to english
-   when we have a guest.
-   
-   Be warned that even if many people are connected to
-   the chanel, they may not be staring at their IRC windows.
-   So don't be surprised if you don't get an answer in the 
-   second, and turn to the mailing lists if nobody seems to be there.
-   The logs of this channel are publicly
-   `available online <http://colabti.org/irclogger/irclogger_logs/simgrid>`_,
-   so may also want to check in a few hours if someone answered after
-   you left. 
-   
+
+ - If you want to chat with the community, join us on `Mattermost
+   <https://framateam.org/simgrid/channels/town-square>`_. Be warned
+   that even if many people are connected to the channel, they may not
+   be staring at their chat windows. So don't be surprised if you
+   don't get an answer in the second, and please be patient.
+
+   If you prefer, you can reach us on IRC on \#simgrid at
+   ``irc.debian.org`` (the `logs are available
+   <http://colabti.org/irclogger/irclogger_logs/simgrid>`_). When no
+   non-french speaker are connected, we usually chat in french on
+   these channel, but we do switch back to english when we have a
+   guest.
+
  - Asking your question on
    `StackOverflow <http://stackoverflow.com/questions/tagged/simgrid>`_
    is also a good idea, as this
    site is very well indexed. We answer questions there too (don't
    forget to use the SimGrid tag in your question so that we can see
-   it), and they remain usable for the next users. 
+   it), and they remain usable for the next users.
 
 Giving back to SimGrid
 ----------------------
@@ -60,40 +54,35 @@ Giving back to SimGrid
 We are sometimes asked by users how to give back to the project. Here
 are some ideas, but if you have new ones, feel free to share them with us.
 
+Provide fresh-eyes feedback
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+We are working on the project since years. We take for granted things that are hard to infer at first, and traps we don't even see anymore.
+Likewise, it's hard for us to maintain the documentation uptodate with the current situation, because we don't rely on the doc when navigating the project.
+This is why your first impression as a newcomer to the project is utterly precious for us.
+Please make sure to write a `discovery report <https://diff.wikimedia.org/2014/03/25/seeing-through-the-eyes-of-new-technical-contributors/>`_ to enlight us.
+You can send it either as a bug report, as a mail on the list or simply post it as is to the Mattermost channel.
+
 Spread the word
 ^^^^^^^^^^^^^^^
 
-There are many ways to help the SimGrid project. The first and most
-natural one is to **use SimGrid for your research, and say so**. Cite
-the SimGrid framework in your papers and discuss of its advantages with
-your colleagues to spread the word. When we ask for new fundings to
-sustain the project, the amount of publications enabled by SimGrid is
-always the first question we get. The more you use the framework,
-the better for us. 
-
-Make sure that your scientific publications using SimGrid actually
-cite the `right paper <https://simgrid.org/Publications.html>`_.
-Also make sure that these citations are correctly listed on 
-`our list <https://simgrid.org/Usages.html>`_.
-
-You can also **help us constituting an active and welcoming user
-community**. Subscribe to the mailing lists, and answer the
-questions that newscomers have if you can. Point them (gently ;) to
-the relevant part of the documentation on need, and help them becoming
-part of our community too. 
-
-Another easy way to help the project is to add a link to the `SimGrid
-homepage <simgrid.org>`_ on your site to improve SimGrid's ranking in
-search engines.
-
-Finally, if you organize a scientific event where you expect many
-potential users, you can invite us to give a tutorial on SimGrid. We
-found that 45 minutes to one hour is very sharp, but
-`doable <http://people.irisa.fr/Martin.Quinson/blog/2012/1120/Simgrid_at_Louvain/>`_.
-It is enough to explain the main motivations and outcomes of the
-project in order to motivate the attendees get more information on
-SimGrid, and eventually improve their scientific habits by using a
-sound simulation framework. 
+A simple way to help the SimGrid project is to **use SimGrid for your research, and say so**.
+`Cite the SimGrid framework <https://simgrid.org/publications.html>`_ in your papers and speak of it with your colleagues to spread the word.
+The number of publications enabled by SimGrid is really important when asking for further fundings to sustain the project:
+The more you use the framework, the better for us.
+
+Add a link to the `SimGrid homepage <https://simgrid.org>`_ on your site to improve our ranking in search engines.
+
+You can also **help us constituting an active and welcoming user community**. Answer to the question sent to the mailing lists if you can, gently pointing to
+the relevant part of the documentation on need, and help newscomers becoming part of our community too.
+
+Finally, you can invite us for a talk on SimGrid to events you organize.
+We have various format, ranging from a focused `20 minute talks <http://people.irisa.fr/Martin.Quinson/blog/2020/1124/SimGrid_presentations>`_
+to a `45mn dense tutorial <http://people.irisa.fr/Martin.Quinson/blog/2012/1120/Simgrid_at_Louvain/>`_,
+to a `2 hours seminar <http://people.irisa.fr/Martin.Quinson/blog/2016/0524/Experimental_methodology_for_distributed_systems>`_, or
+even to `multi-days events <https://simgrid.org/tutorials.html>`_.
+Note that even if most of these examples are from the same individual, several people in the team can present the project.
+It's just that I wrote this paragraph so took the examples I knew, from my own experience :)
 
 Report (and fix) issues
 ^^^^^^^^^^^^^^^^^^^^^^^
@@ -106,12 +95,12 @@ large code and documentation base. So please, **report any issue you
 find**, be it a typo in the documentation, a paragraph that needs to
 be reworded, a bug in the code, or any other problem. The best way to
 do so is to open an issue on our
-`Bug Tracker <https://github.com/simgrid/simgrid/issues>`_ so
-that we don't forget about it. 
+`Bug Tracker <https://framagit.org/simgrid/simgrid/issues>`_ so
+that we don't forget about it.
 
 The worst way to report such issues is to go through private emails.
 These are unreliable, and we are trying to develop SimGrid openly, so
-private discussions are to be avoided if possible. 
+private discussions are to be avoided if possible.
 
 If you can provide a patch fixing the issue you report, that's even
 better. If you cannot, then you need to give us a minimal working
@@ -144,8 +133,8 @@ could be included to SimGrid. Modeling accurately a given platform is
 a difficult work, which outcome is very precious to us.
 
 Or maybe you developed an independent tool on top of SimGrid. We'd
-love helping you gaining visibility by listing it in our 
-`Contrib <https://simgrid.org/contrib.html>`_. 
+love helping you gaining visibility by listing it in our
+`Contrib <https://simgrid.org/contrib.html>`_.
 
 Possible Enhancements
 ^^^^^^^^^^^^^^^^^^^^^
@@ -189,7 +178,7 @@ It is in need of an overhaul:
 
   - cleanup, refactoring, usage of C++ features.
 
-  - The state comparison code works by infering types of blocks allocated on the
+  - The state comparison code works by inferring types of blocks allocated on the
     heap by following pointers from known roots (global variables, local
     variables). Usually the first type found for a given block is used even if
     a better one could be found later. By using a first pass of type inference,
@@ -199,11 +188,11 @@ It is in need of an overhaul:
   - We might benefit from adding logic for handling some known types. For
     example, both `std::string` and `std::vector` have a capacity which might
     be larger than the current size of the container. We should ignore
-    the corresponding elements when comparing the states and infering the types.
+    the corresponding elements when comparing the states and inferring the types.
 
   - Another difficulty in the state comparison code is the detection of
     dangling pointers. We cannot easily know if a pointer is dangling and
-    dangling pointers might lead us to choose the wrong type when infering
+    dangling pointers might lead us to choose the wrong type when inferring
     heap blocks. We might mitigate this problem by delaying the reallocation of
     a freed block until there is no blocks pointing to it anymore using some
     sort of basic garbage-collector.
@@ -213,7 +202,7 @@ MC: Hashing the states
 
 In order to speed up the state comparison an idea was to create a hash of the
 state. Only states with the same hash would need to be compared using the
-state comparison algorithm. Some information should not be inclueded in the
+state comparison algorithm. Some information should not be included in the
 hash in order to avoid considering different states which would otherwise
 would have been considered equal.
 
@@ -221,7 +210,7 @@ The states could be indexed by their hash. Currently they are indexed
 by the number of processes and the amount of heap currently allocated
 (see `DerefAndCompareByNbProcessesAndUsedHeap`).
 
-Good candidate informations for the state hashing:
+Good candidate information for the state hashing:
 
  - number of processes;
 
@@ -241,32 +230,32 @@ but it is currently disabled.
 Interface with the model-checked processes
 """"""""""""""""""""""""""""""""""""""""""
 
-The model-checker reads many information about the model-checked process by
+The model checker reads many information about the model-checked process by
 `process_vm_readv()`-ing brutally the data structure of the model-checked
 process leading to some inefficient code such as maintaining copies of complex
 C++ structures in XBT dynars. We need a sane way to expose the relevant
-information to the model-checker.
+information to the model checker.
 
 Generic simcalls
 """"""""""""""""
 
 We have introduced some generic simcalls which can be used to execute a
-callback in SimGrid Maestro context. It makes it a lot easier to interface
+callback in SimGrid Maestro context. It makes it a lot easier to interface
 the simulated process with the maestro. However, the callbacks for the
-model-checker which cannot decide how it should handle them. We would need a
+model checker which cannot decide how it should handle them. We would need a
 solution for this if we want to be able to replace the simcalls the
-model-checker cares about by generic simcalls.
+model checker cares about by generic simcalls.
 
 Defining an API for writing Model-Checking algorithms
 """""""""""""""""""""""""""""""""""""""""""""""""""""
 
 Currently, writing a new model-checking algorithms in SimGridMC is quite
 difficult: the logic of the model-checking algorithm is mixed with a lot of
-low-level concerns about the way the model-checker is implemented. This makes it
+low-level concerns about the way the model checker is implemented. This makes it
 difficult to write new algorithms and difficult to understand, debug, and modify
 the existing ones. We need a clean API to express the model-checking algorithms
 in a form which is closer to the text-book/paper description. This API must
-be exposed in a language which is more adequate to this task.
+be exposed in a language which is more adequate to this task.
 
 Tasks: