freefem++projectupdate: github,newdocumentation,newwebsite ... · introduction github why git -...

31
FreeFem++ project update: GitHub, new documentation, new website, module repository, and a lot more Who? Simon Garnotel From? Airthium When? FreeFem++ days 2018 - December 12

Upload: phamxuyen

Post on 16-Feb-2019

252 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

FreeFem++ project update:GitHub, new documentation, new website,module repository, and a lot more

Who? Simon Garnotel

From? Airthium

When? FreeFem++ days 2018 - December 12

Page 2: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Introduction

GitHubWhyGit - GitHubRepository architectureThe FreeFem-sources repositoryOpen an issueOpen a pull requestCI/CD

DocumentationWebsitePDF

WebsiteHomeOther pages

ModulesCode architectureWebsite

What’s more ?more ?again ?

Conclusion

Page 3: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Polytechnique - Paris (Bâtiment 404)

A really big multinational company: 3 people + 1 trainee

We make a thermodynamic energy storage system

Most simulations done using FreeFem++First «thèse CIFRE» in January 2019 in partnership withLJLL - Frédéric Hecht«Multi-part contact in fluid-structure interaction algorithm»,Houssam Houssein

Page 4: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Introduction

GitHubWhyGit - GitHubRepository architectureThe FreeFem-sources repositoryOpen an issueOpen a pull requestCI/CD

DocumentationWebsitePDF

WebsiteHomeOther pages

ModulesCode architectureWebsite

What’s more ?more ?again ?

Conclusion

Page 5: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

FreeFem++ is now on GitHub

Why ?

Credit https://blog.github.com

Page 6: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Who knows git ?Who knows github ?Who knows how to use git & github ?

Small git tutorial:http://rogerdudler.github.io/git-guide/

Github guides:https://guides.github.com/activities/hello-world/

An alternative: Gitlab

We migrated before Github acquisition by MicrosoftLess popular and fragmentedBut open-source

Page 7: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

All in one placehttps://github.com/FreeFem

Page 8: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Source repository

https://github.com/FreeFem/FreeFem-sources

Everyone can see the source code, and submit changes.

Several branches:

master: always compile

develop: currentdevelopment, oftencompile

hotfix: used to rapidly fixa bug

feature-XXX: featuredevelopment, sometimescompile

Help us, star the project!

Page 9: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Open an issue: as simple as a forum!

All open issues are listed in the «Issues» tab, just click on«New issue» to add one.

GitHub uses Markdown languagehttps://guides.github.com/features/mastering-markdown/

Remark Issues in the FreeFem-sources repository only concern core and plugins,not usage.

Page 10: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Pull request, for (external) developers

Remark All pull requests must point to the develop branch!

Page 11: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Continuous Integration / Delivery

Computers (MacOS, Windows and Linux) that compile thecode each time it is modified!→ Checks if everything works fine on «all» platforms

In the future, FreeFem++ binaries will be automaticallypublished in GitHub releases:dmg, for MacOSexe, for Windowsdeb, rpm, for Linux (others ?)→ Always up-to-date packages

Page 12: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Introduction

GitHubWhyGit - GitHubRepository architectureThe FreeFem-sources repositoryOpen an issueOpen a pull requestCI/CD

DocumentationWebsitePDF

WebsiteHomeOther pages

ModulesCode architectureWebsite

What’s more ?more ?again ?

Conclusion

Page 13: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Documentation website

https://doc.freefem.org/

Page 14: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Pros:Search barDirect edition (via a Pull Request on GitHub). All thedocumentation is written in Markdown and LATEXDirect copy/paste of codeNew language reference tab

Remark All contributions are welcomed!

Remark Issues in the FreeFem-doc repository should concerndocumentation errors, improvements ...

Page 15: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Already some contributions!

Wifi propagation tutorial Matlab interfacetutorial + documentation

+ some typo fix

Only one thing to say: Thank you!

Page 16: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

PDF/Book – Offline version

From the website to LATEX

Work in progress, hopefully available next year

Page 17: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Introduction

GitHubWhyGit - GitHubRepository architectureThe FreeFem-sources repositoryOpen an issueOpen a pull requestCI/CD

DocumentationWebsitePDF

WebsiteHomeOther pages

ModulesCode architectureWebsite

What’s more ?more ?again ?

Conclusion

Page 18: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

New website

https://freefem.org

Please update your website, personal page, ...

Link to:DocumentationModulesSourcesFreeFem++-js

Page 19: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Gallery / FF-days announcements

Feel free to add your beautifulimages on this page!

Information about the (cur-rent) next FreeFem++ days

Remark Previous editions abstracts, slides, scripts are available in aGitHub repository(https: // github. com/ FreeFem/ FreeFem-days )

Page 20: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Introduction

GitHubWhyGit - GitHubRepository architectureThe FreeFem-sources repositoryOpen an issueOpen a pull requestCI/CD

DocumentationWebsitePDF

WebsiteHomeOther pages

ModulesCode architectureWebsite

What’s more ?more ?again ?

Conclusion

Page 21: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Schematic code architecture

Modules (.edp) are physical problems algorithms, ready to useand ideally validated

Page 22: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Module website

https://modules.freefem.org/

List of modules with tag selection and search bar

Page 23: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

How does it works ?

Pull requests!

Once again, webpages are in Markdown, with LATEXsupport

Modules are automatically added to the list, and tags areprocessed to appear in the selector

Page 24: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Introduction

GitHubWhyGit - GitHubRepository architectureThe FreeFem-sources repositoryOpen an issueOpen a pull requestCI/CD

DocumentationWebsitePDF

WebsiteHomeOther pages

ModulesCode architectureWebsite

What’s more ?more ?again ?

Conclusion

Page 25: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

An article from September 2018:Use of a Free Software to Solve Internal Boundary Problems ofElectrodynamics with a Method of Finite Elements, V.M. Pomykalov,V.V. Boronina, A.N. Savin, I.A. Nakrap(in Russian)

They compared ANSYS to FreeFem++, and:

(translation) «As can be seen, the resonance frequencies calculated bythe finite element method using FreeFem ++ and Ansys HFSS arealmost the same.»

But, they equally say:

(translation) lack of graphical interface and, as a result, thepossibility to manage complex objects;

(translation) the grid generator built into FreeFem ++ has no possibilityforming the finite element space from the graphic models in the format.stl ;

(translation) lack of software-documented algorithm for solving internalboundary value eigenvalue problems.

Page 26: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Tanatloc

Building an open-source (GPL3), web-based, graphicalinterface for FreeFem++

Remark The goal is to build a tool for (PhD-)students and engineers(in small and medium enterprises)

Advantages:«Direct» integration of all modules available on GitHub

State-of-the-art algorithms

Deployable locally on your laptop/desktop or on your institutioncloud/cluster (mainly Javascript)

Pre-compiled dockers for Gmsh, FreeFem, Paraview

Open simulation for peoplewho do not want to pay an arm and a leg for [introduce proprietary software name here]

Page 27: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Version 10−3 pre-α

Proof of conceptAble to run a simulation

Page 28: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Mailing list or forum

Replace mailing list by Discourse (a modern forum) ?

Pros:Simpler, more convenientSearchableMore visibleCategoriesWe can always reply by email

Cons:?

Page 29: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Introduction

GitHubWhyGit - GitHubRepository architectureThe FreeFem-sources repositoryOpen an issueOpen a pull requestCI/CD

DocumentationWebsitePDF

WebsiteHomeOther pages

ModulesCode architectureWebsite

What’s more ?more ?again ?

Conclusion

Page 30: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

In conclusion

Share your EDP files with usContribute to the core or the docStar the project on GitHubLink to the FreeFem++ website on your personal pages

Page 31: FreeFem++projectupdate: GitHub,newdocumentation,newwebsite ... · Introduction GitHub Why Git - GitHub Repository architecture The FreeFem-sources repository Open an issue Open a

Thank you for your attention!

Figure: A Poisson’s problem on a «poisson»