Skip to content

Open-sourcing #182

Closed
Closed
@jameslzhu

Description

@jameslzhu

Rationale

There are several benefits to us for publicly releasing our code:

  • Transferring ownership to compserv org: the org's education benefits appear to have expired, so the only repos we can host under the compserv umbrella can be public. This is desirable for managing access permissions and avoiding ownership issues due to graduation, lost contact, etc.
  • Lower barrier to contribution for non-compserv members / officers: faulty code can be investigated / fixed independently without manual access grants.
  • Security incentives: making our code public incentivizes us to make our code secure, especially practices such as removing API keys. This also preemptively secures our code in the case of a Github security breach. (This may require a git filter-branch to remove objects with secrets.)
  • Cross-pollination: we frequently receive questions on how portions of our website work, especially the d3.js course map. As a non-profit intended to benefit students and the public, we have at least a de jure motivation to release our code to the benefit of the campus community.
  • Relevance to hknweb: hknweb is developed openly, but hkn-rails data must be migrated over. This will require access to hkn-rails code, facilitated by the open-sourcing.

Anti-rationales

  • Security-risks: Making our code public, unfortunately, also comes with the risk of making our code easily exploitable, which given the end-of-life quasi-status of hkn-rails amplifies this risk. This risk is nullified when hkn-rails is no longer used in production.
  • Effort on maintenance-mode code: this may be better used on hknweb. Nullified if we have an excess of manpower relative to tasks (chances are remote, but possible).

Tasks

  • Remove all secrets (Remove api keys #175)
  • Select license for open-source release: BSD 2-clause selected in 2011 by richardxia: aed99f9
  • Request written permission from major contributors
  • Transfer ownership to compserv org

Metadata

Metadata

Assignees

No one assigned

    Labels

    metaTracking issue that encompasses other issues

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions