{"id":18393209,"url":"https://github.com/tomcl/hlp2020-team-n","last_synced_at":"2025-04-12T11:41:49.141Z","repository":{"id":80868128,"uuid":"240706377","full_name":"tomcl/hlp2020-team-n","owner":"tomcl","description":"Sample repo for HLP2020","archived":false,"fork":false,"pushed_at":"2020-02-19T15:01:54.000Z","size":24,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-16T01:41:33.348Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"F#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tomcl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-15T12:27:04.000Z","updated_at":"2020-02-20T16:09:46.000Z","dependencies_parsed_at":"2023-04-15T13:30:33.631Z","dependency_job_id":null,"html_url":"https://github.com/tomcl/hlp2020-team-n","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomcl%2Fhlp2020-team-n","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomcl%2Fhlp2020-team-n/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomcl%2Fhlp2020-team-n/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomcl%2Fhlp2020-team-n/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tomcl","download_url":"https://codeload.github.com/tomcl/hlp2020-team-n/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248563481,"owners_count":21125289,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T01:59:45.681Z","updated_at":"2025-04-12T11:41:49.117Z","avatar_url":"https://github.com/tomcl.png","language":"F#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# hlp2020-team-n\n\nSample repo for HLP2020.\n\nFOLLOW THESE INSTRUCTIONS\n\nThey let you use gitub with a private repo and more than 3 contributors\n\n(1) Create a github id from github.com using your **imperial.ac.uk** e-mail address if you don't have such now.\n\n(2) Join ImperialCollegeLondon organisation as detailed [here](https://www.imperial.ac.uk/admin-services/ict/self-service/research-support/research-support-systems/github/working-with-githubcom/). NB you must be on campus or vpn for this to work.\n\n(3) Create a github private repo named hlp2020-id under imperialcollege london org where id is replaced by your piazza team id (spaces turned into -).\n\n(4) Clone it locally \n\n(5) Download this repo as a zip file\n\n(5) extract all files from zip into local clone previously created\n\n   - check this readme is at top level in repo clone\n   - check ./.gitignore exists in repo clone\n\n(6) Add all team members as contributors with write permission.\n\n(6a) Add me as contributor with read permission.\n\n(7) Each team member clone the repo to their own computers.\n\n## Working with the team repo\n\nThe directory `tomcl` shows sample individual code submission files and project.\n\n* Add one directory for each team member named by his/her IC login\n* Create branches for each team member (see below). After initial setup no-one should directly commit to master except for repo maintenance purposes.\n* Make sure the project and file structure for each individual submission follows that in `tomcl` directory (module files can have different names, there can be more than one module)\n* Each team member must KEEP ALL THEIR INDIVIDUAL CODE UNDER THEIR DIRECTORY EXCEPT FOR FUNCTIONS WRITTEN FOR OTHER PEOPLE\n* Each team member should do work under OWN BRANCH(s). OWN branches named `login-XXX` where `login` is team member login and `XXX` is name of branch. (Could be just one branch named `login-dev`).\n* Each team member should merge their work to master/ update from master from time to time. Needed before end (for assessment) and if their work has functions contributed from/to others.\n* Directory `team` will be used for final team deliverable. In that case merging individual branch work is not trivial since all code will run under the same directory.\n\n## FSharp files and modules\n\nOne module per file, module name same as file name. Module names should be capitalised.\n\n## Sharing Code \u0026 Types\n\nShared types: genuinely shared, developed at start, can be put into a common types module under libs subdirectory (not owned by any one person). Or, if you prefer, it can be owned for assessment purposes by one person and put under their code.\n\nShared library code can be developed by an individuals as a module under their personal directory (for assessment of indiv code) and shared by others since you can add a module with source file anywhere to your fsharp project.\n\nObviously to share your code you will need to make sure it gets merged from your dev branch into master.\n\nDuring team phase, to make modules neater, you can relaocate shared library modules to a separate libs directory etc.\n\n[eeextensions.fs](https://intranet.ee.ic.ac.uk/t.clarke/hlp/images/eeextensions.zip) is a shared library I give you with a few utility functions added to the core standard libraries. Put this under your repo  libs directory from the start, and use it (from there) if you need to.\n\n## Guidelines\n\n* Always do development on own branch, never directly on master\n* Commit to own branch regularly - at least once per hour of work\n* Fetch/Push local clone to github cloud regularly (gives you backup in case of computer breakdown/loss/left it in wrong place)\n* **Create pull request to master** and then **Merge pull request** when own branch code reaches consistent state of when needed to share code with other team members (e.g. if they are writing functions in your module)\n* **Update own branch from master** regularly. Normally in individual phase this will have no great effect (because it will only change code in other team member's directories).\n* NEVER COMMIT CODE EXCEPT TO OWN BRANCH (even when writing functions from someone else, good practice is go through merge onto master, then they update from master)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomcl%2Fhlp2020-team-n","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftomcl%2Fhlp2020-team-n","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomcl%2Fhlp2020-team-n/lists"}