Fetching the latest programs, projects, and workspace data.
Open Source package manager for macOS.
Showing 5 of 5 projects. Click any project card for scope, mentors, and proposal studio.
Mentors: Student: Arjun Salyan
<p>The main idea is to improve the web app which is still scratchy and make it a more mature software with exhaustive tests and features that are more useful to developers- like a complete API. The app needs more checkpoints so that things do not break in the future. The overall experience for the users and port discovery needs to be improved greatly. Some existing features like “Port health” are not very useful in their current state and require improvement.</p> <p>Another important aspect would be refactoring of the web app code. The code at many places is repetitive and difficult to understand. Any open-source codebase should be understandable and should attract maintainers while being optimal. This major code refactoring will also be backed by the documentation.</p> <p>The webapp has some resource-hungry pages which redundantly utilise resources each time the page is requested. This problem has to be addressed by carefully caching the pages and their sections while making sure that the usability of the app does not get affected.</p> <p>Brief breakdown:</p> <ul> <li>Major code refactoring</li> <li>Accelerating the site</li> <li>New features: Advanced search, support for livecheck, new homepage</li> <li>Implement the API</li> <li>Exhaustive tests</li> </ul>
Mentors: Student: Rajdeep Bharati
<p>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:</p> <ul> <li>The ability to write custom JavaScript views (UI components).</li> <li>Triggering a build whenever a pull request is made. Currently, a build can be started only when patches are committed to the master branch.</li> </ul> <p>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.</p>
Mentors: Student: Arjun Salyan-1
<p>The website would have a dynamic page for each port which would display</p> <ul> <li><p><strong>Port Information</strong>: Name, Description, Version, Maintainers (github and email), Dependencies, Long Description, Homepage, Installed Files etc.</p> </li> <li><p><strong>Installations Statistics</strong>: Number of installations, Installations vs Month, Installations vs Version for last 12 months, number of updates vs month.</p> </li> <li><strong>Build Data</strong>: Table of all builds(latest), Status of last build for all OS Versions, Build Reproducibility.</li> </ul> <p>The API would make the collection of data more powerful by extending its use beyond the web-app.</p> <p>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.</p>
Mentors: Student: Karan Sheth
<p>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.</p>
Mentors: Student: Ahmad Satryaji Aulia
<p>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:</p> <ul> <li><strong>Xcode dependency flag</strong>: implement a flag for package maintainers to indicate Xcode dependency</li> <li><strong>Xcode dependency detection</strong>: implement a way to detect Xcode dependency when building packages using sandbox tracing</li> <li><strong>Force build without Xcode</strong>: blacklist Xcode compilers when Xcode is not needed by hacking libxcselect</li> </ul> <p>This will lay the groundwork to eventually phase out Xcode dependency for MacPorts as a whole. All contributions are made onto the <strong>macports-base</strong> repository, touching various areas of the codebase and overall adding features to the Tcl-based command line tool.</p>