Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Software Engineering for Machine Learning #1722

Closed
wants to merge 2 commits into from

Conversation

xserban
Copy link
Contributor

@xserban xserban commented Feb 29, 2020

This list includes articles recommending or describing software engineering best practices for building machine learning applications.

It is more than 30 days old and has over 330 stars.
We reviewed 2 PRs: 1 and 2.

Some linting issues were ignored because the emojis used to flag publications as academic or must-read (see list) are not considered a description.

https://github.com/SE-ML/awesome-seml/blob/master/readme.md

Software engineering is complementary to any machine learning project. Ensuring good software engineering practices enhances development, deployment and maintenance of production level machine learning models. Until now, there is no awesome list to tackle this topic.

By submitting this pull request I confirm I've read and complied with the below requirements 🖖

Please read it multiple times. I spent a lot of time on these guidelines and most people miss a lot.

Requirements for your pull request

  • Don't waste my time. Do a good job, adhere to all the guidelines, and be responsive.
  • You have to review at least 2 other open pull requests.
    Try to prioritize unreviewed PRs, but you can also add more comments to reviewed PRs. Go through the below list when reviewing. This requirement is meant to help make the Awesome project self-sustaining. Comment here which PRs you reviewed. You're expected to put a good effort into this and to be thorough. Look at previous PR reviews for inspiration.
  • You have read and understood the instructions for creating a list.
  • This pull request has a title in the format Add Name of List.
    • Add Swift
    • Add Software Architecture
    • Update readme.md
    • Add Awesome Swift
    • Add swift
    • Adding Swift
    • Added Swift
  • Your entry here should include a short description about the project/theme of the list. It should not describe the list itself. The first character should be uppercase and the description should end in a dot. It should be an objective description and not a tagline or marketing blurb.
    • - [iOS](…) - Mobile operating system for Apple phones and tablets.
    • - [Framer](…) - Prototyping interactive UI designs.
    • - [iOS](…) - Resources and tools for iOS development.
    • - [Framer](…)
    • - [Framer](…) - prototyping interactive UI designs
  • Your entry should be added at the bottom of the appropriate category.
  • The suggested Awesome list complies with the below requirements.

Requirements for your Awesome list

  • Has been around for at least 30 days.
    That means 30 days from either the first real commit or when it was open-sourced. Whatever is most recent.
  • Don't open a Draft / WIP pull request while you work on the guidelines. A pull request should be 100% ready and should adhere to all the guidelines when you open it.
  • Run awesome-lint on your list and fix the reported issues. If there are false-positives or things that cannot/shouldn't be fixed, please report it.
  • Includes a succinct description of the project/theme at the top of the readme. (Example)
    • Mobile operating system for Apple phones and tablets.
    • Prototyping interactive UI designs.
    • Resources and tools for iOS development.
    • Awesome Framer packages and tools.
  • It's the result of hard work and the best I could possibly produce.
    If you have not put in considerable effort into your list, your pull request will be immediately closed.
  • The repo name of your list should be in lowercase slug format: awesome-name-of-list.
    • awesome-swift
    • awesome-web-typography
    • awesome-Swift
    • AwesomeWebTypography
  • The heading title of your list should be in title case format: # Awesome Name of List.
    • # Awesome Swift
    • # Awesome Web Typography
    • # awesome-swift
    • # AwesomeSwift
  • Non-generated Markdown file in a GitHub repo.
  • The repo should have awesome-list & awesome as GitHub topics. I encourage you to add more relevant topics.
  • Not a duplicate. Please search for existing submissions.
  • Only has awesome items. Awesome lists are curations of the best, not everything.
  • Does not contain items that are unmaintained, has archived repo, deprecated, or missing docs. If you really need to include such items, they should be in a separate Markdown file.
  • Includes a project logo/illustration whenever possible.
    • Either centered, fullwidth, or placed at the top-right of the readme. (Example)
    • The image should link to the project website or any relevant website.
    • The image should be high-DPI. Set it to maximum half the width of the original image.
  • Entries have a description, unless the title is descriptive enough by itself. It rarely is though.
  • Includes the Awesome badge.
    • Should be placed on the right side of the readme heading.
      • Can be placed centered if the list has a centered graphics header.
    • Should link back to this list.
  • Has a Table of Contents section.
    • Should be named Contents, not Table of Contents.
    • Should be the first section in the list.
    • Should only have one level of nested lists, preferably none.
  • Has an appropriate license.
    • We strongly recommend the CC0 license, but any Creative Commons license will work.
      • Tip: You can quickly add it to your repo by going to this URL: https://github.com/<user>/<repo>/community/license/new?branch=master&template=cc0-1.0 (replace <user> and <repo> accordingly).
    • A code license like MIT, BSD, Apache, GPL, etc, is not acceptable. Neither are WTFPL and Unlicense.
    • Place a file named license or LICENSE in the repo root with the license text.
    • Do not add the license name or text to the readme. GitHub already shows the license name at the top of the repo.
    • To verify that you've read all the guidelines, please comment on your pull request with just the word unicorn.
  • Has contribution guidelines.
    • The file should be named contributing.md. Casing is up to you.
  • Has consistent formatting and proper spelling/grammar.
    • The link and description are separated by a dash.
      Example: - [AVA](…) - JavaScript test runner.
    • The description starts with an uppercase character and ends with a period.
    • Consistent and correct naming. For example, Node.js, not NodeJS or node.js.
  • Doesn't include a Travis badge.
    You can still use Travis for list linting, but the badge has no value in the readme.
  • Doesn't include an Inspired by awesome-foo or Inspired by the Awesome project kinda link at the top of the readme. The Awesome badge is enough.

Go to the top and read it again.

This [list](https://github.com/SE-ML/awesome-seml/blob/master/readme.md ) includes articles recommending or describing software engineering best practices for building machine learning applications.

It is more than 30 days old and has over 330 stars.
@sindresorhus
Copy link
Owner

Thanks for making an Awesome list! 🙌

It looks like you didn't read the guidelines closely enough. I noticed multiple things that are not followed. Try going through the list point for point to ensure you follow it. I spent a lot of time creating the guidelines so I wouldn't have to comment on common mistakes, and rather spend my time improving Awesome.

@xserban
Copy link
Contributor Author

xserban commented Mar 2, 2020

Hi @sindresorhus, thank you for the review. We actually went to the process again several times and could only identify 2 issues:

  1. There is no dash between the titles and the descriptions: We would like to avoid adding dashes because our descriptions are only some emojis which indicate if an article is academic (peer reviewed) or not (as described in this PR).
  2. The items in the list do not have a description: this is because the titles are very descriptive.

If possible, can you be more descriptive about the issues you observed? Thanks!

@machawk1
Copy link

machawk1 commented Mar 3, 2020

@NullConvergence Here is an example of one that was missed:

To verify that you've read all the guidelines, please comment on your pull request with just the word unicorn.

readme.md Outdated Show resolved Hide resolved
@xserban
Copy link
Contributor Author

xserban commented Mar 4, 2020

Great, many thanks for your comments!

@xserban
Copy link
Contributor Author

xserban commented Mar 4, 2020

unicorn

@chrislatorres
Copy link
Contributor

Hi, the list is great, I love the use of icons. I noticed the repo is missing a license, which is a requirement:

Has an appropriate license.

@chrislatorres chrislatorres mentioned this pull request Mar 8, 2020
@xserban
Copy link
Contributor Author

xserban commented Mar 8, 2020

I think you are wrong, the list has a license.

@xserban
Copy link
Contributor Author

xserban commented Mar 8, 2020

unicorn

@chrislatorres
Copy link
Contributor

I see that you listed the license in the readme, the instructions state:

Place a file named license or LICENSE in the repo root with the license text.
Do not add the license name or text to the readme. GitHub already shows the license name at the top of the repo.

@xserban
Copy link
Contributor Author

xserban commented Mar 9, 2020

@LTCHRIS you are right! I also added the license file.
We actually used the yeoman-generator which added the license only to the readme file. Do you think it might be useful to generate a license from yeoman?

@sindresorhus
Copy link
Owner

Entries have a description, unless the title is descriptive enough by itself. It rarely is though.

@sindresorhus
Copy link
Owner

❯ awesome-lint https://github.com/SE-ML/awesome-seml
✖ Linting

  readme.md:45:3
  ✖   24:1    ToC item "Social aspects" does not match corresponding heading "Social Aspects"                                                        remark-lint:awesome-toc
  ✖   32:143  List item link and description must be separated with a dash                                                                           remark-lint:awesome-list-item
  ✖   33:132  List item link and description must be separated with a dash                                                                           remark-lint:awesome-list-item
  ✖   34:170  List item link and description must be separated with a dash                                                                           remark-lint:awesome-list-item
  ✖   45:3    Link to https://www.altexsoft.com/blognp/datascience/how-to-organize-data-labeling-for-machine-learning-approaches-and-tools/ is dead  remark-lint:no-dead-urls
  ✖   59:134  List item link and description must be separated with a dash                                                                           remark-lint:awesome-list-item
  ✖   75:91   List item link and description must be separated with a dash                                                                           remark-lint:awesome-list-item
  ✖  100:91   List item link and description must be separated with a dash                                                                           remark-lint:awesome-list-item

  8 errors

https://github.com/sindresorhus/awesome-lint

@xserban
Copy link
Contributor Author

xserban commented Mar 30, 2020

Hi @sindresorhus, thanks for your comment. We've updated the list, although did not implemented the dash between the items and the description. We would like to avoid this change because our description only consists of some icons. Let me know your opinion.

@xserban
Copy link
Contributor Author

xserban commented Apr 3, 2020

unicorn

@machawk1
Copy link

machawk1 commented Apr 3, 2020

👋 @NullConvergence The issue "List item link and description must be separated with a dash" only seems to appear for lines that contain ⭐️. Replacing this character with ⭐allows the linter to pass. The difference is subtle. The star you are using have the "unicode variation selector 16"

Yours (⭐️): E2AD90EF B88F
Version that passes linter (⭐): E2AD90

I have submitted a PR to https://github.com/SE-ML/awesome-seml/ in SE-ML/awesome-seml#11 . Accepting that will further align with the awesome-lint requirements.

@xserban
Copy link
Contributor Author

xserban commented Apr 3, 2020

@machawk1 many thanks for suggesting this edit. I accepted your PR!

@sindresorhus
Copy link
Owner

Descriptions are missing for the items in the Tooling section.

@sindresorhus
Copy link
Owner

I decided to rename master branch to main, and apparently that permanently closes all PRs. Ugh. Sorry about that. Can you reopen this PR targeting the main branch? Include a link to this PR in the new one, so we can quickly see what was discussed previously.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants