This page is dedicated to the projects accepted into GSoC 2019.
This year we are trying to test a real-time chat-like option for quick communication and avoid spamming mailing lists for silly questions. Please feel free to join us on Gitter and experiment around: https://gitter.im/macports-gsoc/gsoc-2019. You can ping @umeshksingla if you'd like a separate room for your project or create one on your own.
Phase Out Xcode Dependency
Description
Currently, a full Xcode installation is needed to install MacPorts. In reality this is overkill, as most of the packages on the MacPort do not need the full installation. To phase out this dependency, several things should be done:
- Xcode dependency flag: implement a flag for package maintainers to indicate Xcode dependency
- Xcode dependency detection: implement a way to detect Xcode dependency when building packages using sandbox tracing
- Force build without Xcode: blacklist Xcode compilers when Xcode is not needed by hacking libxcselect
This will lay the groundwork to eventually phase out Xcode dependency for MacPorts as a whole. All contributions are made onto the macports-base repository, touching various areas of the codebase and overall adding features to the Tcl-based command line tool. details
Student
Mentors
- Marcus Calhoun-Lopez (github: @MarcusCalhoun-Lopez; macports: mcalhoun?)
- Clemens Lang (github: @neverpanic; macports: cal)
Links
- Relevant repository: https://github.com/macports/macports-base/
- Project board: https://github.com/satraul/macports-base/projects/1
- Meetings every Tuesday at 14:00 UTC via Discord
Automating Packaging for Macports
Description
While creating a Portfile for MacPorts one has to manually write the file or depending on the upstream use tools such as pypi2port
, cpan2port
, etc. So as to not deal with different tools for each type of package, Universal Packaging Tool (UPT) can be used. Main aim of this project would be to bring macports support to upt and adding features to UPT such as recursive packaging and updation.
Student
- Karan Sheth (github: @Korusuke)
Mentors
- Cyril Roelandt (github: @Steap), author of upt
- Renee Otten (github: @reneeotten; macports: reneeotten?)
Links
- Main repository: https://github.com/macports/upt-macports
Web App (with API) to Collect PortIndex, Build History and Installation Statistics
Description
The website would have a dynamic page for each port which would display:
- Port Information: Name, Description, Version, Maintainers (github and email), Dependencies, Long Description, Homepage, Installed Files etc.
- Installations Statistics: Number of installations, Installations vs Month, Installations vs Version for last 12 months, number of updates vs month.
- Build Data: Table of all builds(latest), Status of last build for all OS Versions, Build Reproducibility.
The API would make the collection of data more powerful by extending its use beyond the web-app.
Although these will be the main components of the app, yet there will be many other accessibility features like maintainer’s page, customisable table of all builds etc.
Student
- Arjun Salyan (github: @arjunsalyan; macports: arjun?)
Mentors
- Mojca Miklavec (github: @mojca; macports: mojca)
- Umesh Singla (github: @umeshksingla; macports: umeshksingla)
Links
- URL: https://ports.macports.org
- Main repository: https://github.com/macports/macports-webapp
- Project board: https://github.com/macports/macports-webapp/projects/1
- Temporary URL of deployed app:
- Discussion:
- Meetings every Saturday at 6:00 UTC via Google Hangouts
- Final report: https://arjunsalyan.github.io/gsoc19-report/
Macports Custom Views Plugin for Buildbot
Description
MacPorts currently uses a legacy version of Buildbot (0.8) as its continuous integration framework and hasn't upgraded due to certain drawbacks in the Waterfall view of the newer versions. However, the currently deployed version is outdated and fails in several aspects due to the absence of some key features such as:
- The ability to write custom JavaScript views (UI components).
- Triggering a build whenever a pull request is made. Currently, a build can be started only when patches are committed to the master branch.
This has led to some major setbacks with respect to developer productivity. MacPorts also needs some custom views in buildbot to be able to better analyze build history, commits, etc. The legacy version doesn't allow us to write such custom views. This project will involve upgrading the Macports Buildbot infrastructure to the latest version, developing a plugin for buildbot and writing custom views.
Student
- Rajdeep Bharati (github: @rajdeepbharati; macports: rajdeep?)
Mentors
- Pierre Tardy (github: @tardyp), buildbot developer
- Povilas Kanapickas (github: @p12tic), buildbot developer
- Mojca Miklavec (github: @mojca; macports: mojca)
Links
- Report
- Main repositories
- https://github.com/macports/buildbot-macports-custom-views (MacPorts-specific views)
- https://github.com/buildbot/buildbot (general patches and improvements for buildbot)
- https://github.com/macports-gsoc/macports-buildbot (playground)
- Project boards:
- Temporary deployment:
- Meetings every Tuesday at 16:00 UTC on the
#buildbot
IRC channel at Freenode logs