igraph icon indicating copy to clipboard operation
igraph copied to clipboard

Verify and improve tutorial

Open szhorvat opened this issue 4 years ago • 22 comments

The igraph tutorial (here online, source file here) should be reviewed:

  • Is it up to date?
  • Is it understandable by a newcomer?
  • Are essential points unexplained or missing?

Ideally, this should be done by someone who is new to using igraph, to get a fresh perspective. Thus, marking this as good-first-issue. Contributions are very welcome!

szhorvat avatar Feb 19 '21 12:02 szhorvat

hello! This sounds like a great first issue, may I take a look? I'm new to igraph -- in fact new to a lot of things right now so I'm VERY used to reading tutorials :)

lucyharlow avatar Mar 16 '21 08:03 lucyharlow

Yes, please go ahead. Please let us know what operating system you are using.

The first thing you need to do is learn how to compile and install igraph: https://igraph.org/c/doc/igraph-Installation.html Feedback on this is welcome as well.

At some point, you may want to build your own version of the documentation (instead of using the online one) in order to: (1) be able to read the latest development version (2) be able to edit it. Let's leave this as a later step, as you will need to install a few special tools, and you would probably need Linux or macOS (I'm not sure if documentation building will work on Windows).

If you need help, feel free to post on our forum at https://igraph.discourse.group/ and ping me as @szhorvat

Please note that this week is unusually busy for all of us, so we may be very slow to respond until maybe mid-next-week.

szhorvat avatar Mar 16 '21 09:03 szhorvat

Hi! I will get to it tomorrow, looking forward to it! I'm using macOS Big Sur version 11.2, though I have access to a Linux computer as well.

lucyharlow avatar Mar 16 '21 16:03 lucyharlow

macOS is perfectly fine. The easiest way to install tools you need is MacPorts (I use this) or Homebrew (some other igraph developers use this).

szhorvat avatar Mar 16 '21 16:03 szhorvat

HI, I am interested in this particular issue. Please let me know how to begin. As I am new to igraph so I am currently going through igraph tutorials docs (https://igraph.org/c/doc/igraph-Tutorial.html). And I am using Windows as my operating system.

HarshKumarSingh07 avatar Apr 04 '21 11:04 HarshKumarSingh07

@HarshKumarSingh07 You are welcome to work on this. What I wrote above still applies, but in the meantime we realized that the compilation instructions are a bit outdated. To make things simpler, I recommend compiling igraph as a shared library first.

Please post on the forum (https://igraph.discourse.group/) if you get stuck, and describe the problem in as much detail as possible. This feedback will be useful for improving the tutorial.

On Windows, you can either use Visual Studio or MSYS2/MinGW. Do note that none of us currently work on Windows, I am not sure if anyone would be able to help with issues that arise while using Visual Studio's graphical interface (personally, I use only the command line tools when I test on Windows).

szhorvat avatar Apr 04 '21 15:04 szhorvat

Hey @szhorvat sir, Sorry to say I tried but I am getting problem in setting up the igraph library on my windows system. Can you guide or share some relevant work which could help me out in compiling the igraph library on my machine? Mostly what I see is that it works well on Linux.

HarshKumarSingh07 avatar Apr 04 '21 16:04 HarshKumarSingh07

Have you already looked at https://igraph.org/c/doc/igraph-Installation.html ? If yes, describe in detail how far you got, and where you got stuck, but please use the forum (https://igraph.discourse.group/), not the issue tracker.

szhorvat avatar Apr 04 '21 16:04 szhorvat

For those interested in this issue, right now easiest way to compile your first program is to use the master branch from the igraph git repository, and use CMake for your own program as well.

Assuming your first program is in the file igraph_test.c, your CMakeLists.txt file may look as follows:

cmake_minimum_required(VERSION 3.16)

project(igraph_find_test C)

find_package(igraph REQUIRED)

add_executable(igraph_test igraph_test.c)
target_link_libraries(test PUBLIC igraph::igraph)

If igraph was installed at a non-standard prefix (CMAKE_INSTALL_PREFIX, see installation docs) then use -DCMAKE_PREFIX_PATH=... with the same prefix when compiling your own program.

szhorvat avatar Apr 10 '21 10:04 szhorvat

Draft update to the tutorial: https://igraph.discourse.group/t/igraph-tutorial-update/708

szhorvat avatar Apr 10 '21 17:04 szhorvat

@HarshKumarSingh07 @lucyharlow Are you still interested in this? Version 0.9.2 was released today, with improvements that make it easier to get started. See the updated installation instructions and tutorial in the documentation.

szhorvat avatar Apr 14 '21 14:04 szhorvat

Yes @szhorvat , I am going through it right now. Will back to you if any problem would be there.

HarshKumarSingh07 avatar Apr 15 '21 04:04 HarshKumarSingh07

Hi all,

I want to learn C and contribute to an open-source project. As Data Science student igraph looks like an interesting repository to contribute to! I use a MacBook Pro with Big Sur 11.2.3. I will start the tutorial and comment on the understandability!

Although I am a newcomer to C (used it once), I am fairly experienced with programming practices and some other languages, so I do have considerate knowledge on the algorithms in use and programming itself.

I am looking forward to learn new stuff!

22-04 @szhorvat Started on the tutorial, installation worked out, however, missed the libomp package as prerequisite (on Mac needed for use of OpenMP). How should I post improvements (first contribution ever on Github)?

OlofMorra avatar Apr 18 '21 19:04 OlofMorra

Hi, I'm a master's student in computer sience and engineering at Linköping University. Currently I'm looking into getting started with open source development. Is iGraph a good first project to start in? I have knowledge in both C, C++ and Python.

isakhagg avatar Sep 03 '21 11:09 isakhagg

@isakhagg igraph welcomes new contributors. For beginners, this issue is the best way to get started. In other words, go through the tutorial, write your first working program, and give feedback about what needs to be improved in the tutorial/documentation. You can ask for help in the forum, https://igraph.discourse.group/ When you are done with this, we can move on to #1585, then gradually to more complex and more interesting tasks.

szhorvat avatar Sep 03 '21 14:09 szhorvat

Adding to 0.10 milestone. The aim is to make sure that the tutorial is up to date with 0.10, does not use deprecated functionality and all sample code compiles.

szhorvat avatar Jul 22 '22 12:07 szhorvat

AFAIK we already compile and test examples/ as part of the regular unit test suite so any deprecations should have been already caught there. We only need to go through code that is inlined in the documentation (if any).

ntamas avatar Jul 22 '22 13:07 ntamas

@ntamas I'll give it a quick read to see if there's anything that needs to be fixed.

szhorvat avatar Jul 22 '22 13:07 szhorvat

Hey, I've read through the above comments. If this issue is still open, I would like to help if possible.

I might need to brush up on my C, but I'd like to get started helping with open source projects and I'm very interested in graphs in general, so I thought this might be a good place to start.

I mainly use MacOS currently, but I also have a Linux machine if you would prefer I test on that.

I'll go through the installation steps (https://igraph.org/c/doc/igraph-Installation.html) and tutorial (https://igraph.org/c/doc/igraph-Tutorial.html). Are those the most current links?

Is there anything in particular you would like feedback on, or just how readable everything is from a first time user?

JRickenbacher avatar Aug 07 '22 07:08 JRickenbacher

Yes, feedback is welcome.

Please use the develop branch in the GitHub repository. This will soon become version 0.10. The documentation is here:

https://igraph.org/c/html/develop/

The documentation version can be selected in the page header on the left. It should be "develop" and not "latest".

szhorvat avatar Aug 07 '22 07:08 szhorvat

in the paragraph about compiling with CMake it says the following: "C++ support is enabled by default when no languages are explicitly specified in CMake's project command. If you do specify some languages explicitly, make sure to also include CXX." this leaves me wondering where to include CXX, I think it should be added to the list of languages, but I think it would be more clear to say "make sure to also include CXX to the languages".

Jeroenvh99 avatar Sep 21 '22 14:09 Jeroenvh99

I agree that this isn't really tutorial material.

If you use project(something), as recommended in the current version of the tutorial, all is fine, as both C and C++ are enabled by default. If you explicitly enable C with project(something C) then C++ will not be enabled. project(something C CXX) is fine. Old versions of the tutorial had project(something C).

szhorvat avatar Sep 21 '22 14:09 szhorvat