GithubHelp home page GithubHelp logo

whats-dat-movie's People

Contributors

aliyabear avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

nikmacintosh

whats-dat-movie's Issues

Rename the enhancemend_template.md [sic] to pull_request_template.md

๐Ÿ‘ฉโ€๐ŸŽ“ Expected Behavior

The markdown in the enhancemend_template.md will pre-populate new pull requests.

๐Ÿ‘ฉโ€๐ŸŽค Actual Behavior

The markdown in the enhancemend_template.md doesn't get used anywhere.

๐Ÿ‘ฉโ€๐Ÿ”ฌ Steps to Reproduce

  1. Try creating a new Github issue or pull request

Apparently, Github only supports one issue or pull request template, so we could move the markdown from the enhancement template, over to the pull request template. What do you think?

Create an issue template

When you add an issue template to your repository, project contributors will automatically see the template's contents in the issue form body. Templates customize and standardize the information you'd like included when contributors open issues.
-- Creating an issue template for your repository

This will help us have consistency between all of our issues, and reduce busy-work.

Investigate how to add testing framework(s) to Xamarin projects

๐Ÿ‘‹ Introduction / ๐Ÿ‘Š Motivation

:neckbeard: - "What do we want?"
:rage1: - "TESTS!"
:neckbeard: - "When do we need them?"
:rage1: - "YESTERDAY!"

"Ain't no motivation needed for tests yo!"

๐Ÿ““ Proposal

  • We should try our best to keep all of our Business Logic/Testable layers outside of our platform-specific views.
  • Ideally, we'd have tests per project/module

๐Ÿค“ Implementation

  • Tests per project
    • I haven't played with Xamarin much, but I know that for other .NET projects (specifically, Class Libraries), I've had to create separate Projects to be able to run tests.
    • Ideally, we wouldn't need to run an emulator test app to run our tests as they should be separate from our views
  • Figure out best option for PCL as well as Class Libraries
  • Based on Xamarin's documentation, they recommend the separate test app approach
    https://developer.xamarin.com/guides/ios/deployment,_testing,_and_metrics/touch.unit/

๐Ÿ’ฃ Impact

  • We will be able to run these via CI
  • We will have confidence on the things we write

โš–๏ธ Alternatives

  • NUnit on Class Libraries
  • There is a Unit Test Project type in VS. Maybe that would work without necessitating an iOS/Android specific Unit Testing App

๐Ÿค” Questions

  • Can we run an iOS/Android Unit Test Project via CI?

Create an enhancement template

An enhancement tends to be such a specific type of issue, that I think it warrants its own template (I'm assuming this is possible, might require some back-pedalling if it's not in the end).

Enhancements:

  • Do not have an actual behavior, as they do not exist yet
  • Require justification
  • Require implementation details
  • More abstract, as they do not exist yet

Potentially, another template in the .github/ folder, specifically for enhancements would be a good idea?

Add Checklist to pull_request_template.md

๐Ÿ‘ฉโ€๐ŸŽ“ Expected Behavior

Pull-Request template is full of awesomeness, emojis and a checklist for when we're lazy.

๐Ÿ‘ฉโ€๐ŸŽค Actual Behavior

Pull-Request is full of awesomeness and emojis

๐Ÿ‘ฉโ€๐Ÿ”ฌ Steps to Reproduce

  1. Open pull_request_template.md
  2. Notice there isn't a section called Checklist

Create an empty Visual Studio project

๐Ÿ‘‹ Introduction / ๐Ÿ‘Š Motivation

Creates an empty project (Android + iOS + Shared Portable Class Library (PCL)). Majority of code can be abstracted and contained in the PCL, with the option to get platform-specific in the Android and iOS projects.

๐Ÿ““ Proposal / ๐Ÿค“ Implementation

  1. Created an empty (not Xamarin.Forms) Android + iOS + PCL project in Visual Studio For Mac Preview

โš–๏ธ Alternatives

  • XamarinStudio: I've tried Visual Studio for Mac Preview, as it sounds like where Microsoft's heart is at, post-Xamarin-acquisition; if we do encounter a deal-breaker with Visual Studio for Mac Preview, it looks possible to migrate to XamarinStudio instead. Finally, Visual Studio for Mac Preview states it has equivalent functionality to XamarinStudio
  • Xamarin.Forms: Before knowing our requirements, I opted to not start with Xamarin.Forms, as camera-related functionality sounded like it could stray into the territory where we do need more platform-specific access

Continuous Integration

๐Ÿ‘‹ Introduction

๐Ÿ–ฅโ†’โ˜๏ธ

A wise developer once said, "a build shall never be made from a developer's local machine, yo."

๐Ÿ‘Š Motivation

It is common on software projects for developers to work in parallel. At some point, it is necessary to integrate all of these parallel streams of work into one codebase that makes up the final product. In the early days of software development, this integration was performed at the end of a project, which was a difficult and risky process.

Continuous Integration (CI) avoid such complexities by merging every developer's changes into the common code base on a continual basis, usually whenever any developers checks in changes to the project's shared code repository. Each check-in triggers an automated build and runs automated tests to verify that the newly introduced code didnโ€™t break any existing code. In this way, CI surfaces errors and problems immediately and ensures that all team members stay up to date with each other's work. This results in a cohesive and stable codebase.

-- Introduction to Continuous Integration with Xamarin

๐Ÿ““ Proposal

  • Integrate the Github repository with one of the continuous integration providers mentioned under Alternatives
  • Pull requests indicate if they build and test successfully
  • Changes to (at least) master and develop trigger new builds for supported devices
  • Email / SMS / FB Messenger / Slack notification indicating a new build

๐Ÿค“ Implementation

// TODO

๐Ÿ’ฃ Impact

  • Pull requests will need to successfully build and pass tests before being merge-able
  • The full system is more complex

โš–๏ธ Alternatives

Click on button to record video input stream

๐Ÿ‘‹ Introduction / ๐Ÿ‘Š Motivation / ๐Ÿ’ฃ Impact

This enhancement would be the first step in essentially prototyping "What's Dat Movie". A user would click on a button called "Record Video" (we can get into UX/design specifics at a later point) and then the app would record an input stream of video from the device's camera.

๐Ÿ““ Proposal

  • Add "Record Video" button
  • Event handler for button invokes the following:
    • Checks to see if device has a camera
    • Handles O/S level permissions
      • If user says no to camera permission, display alert saying that they cannot use feature
    • Displays O/S native video recording
    • When complete, app grabs input stream and stores it in cache
      ...Presumably, we store it in a temp directory/file until its been processed for now.
    • Works for Android & iOS

๐Ÿค“ Implementation

TODO:

  • Prototype that this works
  • Investigate how to implement this elegantly

โš–๏ธ Alternatives

TODO:

Describe alternative approaches to addressing the same problem, and why you
chose this approach instead.

Add a Code of Conduct

๐Ÿ‘‹ Introduction / ๐Ÿ‘Š Motivation

Open Source has always been a foundation of the Internet, and with the advent of social open source networks this is more true than ever. But free, libre, and open source projects suffer from a startling lack of diversity, with dramatically low representation by women, people of color, and other marginalized populations.

Part of this problem lies with the very structure of some projects: the use of insensitive language, thoughtless use of pronouns, assumptions of gender, and even sexualized or culturally insensitive names.

Marginalized people also suffer some of the unintended consequences of dogmatic insistence on meritocratic principles of governance. Studies have shown that organizational cultures that value meritocracy often result in greater inequality. People with "merit" are often excused for their bad behavior in public spaces based on the value of their technical contributions. Meritocracy also naively assumes a level playing field, in which everyone has access to the same resources, free time, and common life experiences to draw upon. These factors and more make contributing to open source a daunting prospect for many people, especially women and other underrepresented people. (For more critical analysis of meritocracy, refer to this entry on the Geek Feminism wiki.)

-- Contributor Covenant: A Code of Conduct for Open Source Projects

๐Ÿ““ Proposal / ๐Ÿค“ Implementation

  1. Pledge your respect and appreciation for contributors and participants in your open source project by adding an explicit CODE_OF_CONDUCT.md to your project repository.
  2. English Markdown is available here
  3. Replace INSERT_EMAIL with an appropriate one

๐Ÿ’ฃ Impact

Do not simply add the Contributor Covenant to your project and assume that any problems with civility, harassment, or discrimination will be solved. As a project maintainer you must be committed to enforcing the code of conduct. A code of conduct without enforcement sends a false signal that your project is welcoming and inclusive, and can create a dangerous situation for marginalized people who participate. Adding the Contributor Covenant to a project places responsibility on the project team that must not be taken lightly.

Xamarin Workbook

๐Ÿ‘‹ Introduction

Xamarin Workbooks provide a blend of documentation and code that is perfect for experimentation, learning, and creating guides and teaching aids.

Create a rich C# workbook for Android, iOS, Mac, WPF, or Console, and get instant live results as you learn these APIs.

-- Xamarin Workbooks

๐Ÿ‘Š Motivation

  • Documentation-driven projects are very approachable
  • Nothing beats documentation that also runs!
  • Especially initially, it's nice to have a scratchpad for showcasing ideas with regards to structure, architecture, etc.
  • Yet another part of the Xamarin ecosystem to assess
  • Decreasing the lag between writing code, and seeing it in action, speeds up development

๐Ÿ““ Proposal

We should create a Xamarin Workbook, in our repository, that we can use to try / showcase ideas, and/or document existing code, in a way where it's also runnable by anyone viewing the project.

๐Ÿค“ Implementation

  1. To start creating a new workbook, run the Workbooks app. If you haven't installed this already, visit the Installation page. You will be prompted to create a workbook in your platform of choice, which will automatically connect to an agent app allowing you to visualize your document in real time. If the Workbooks app is already running, you can create a new document by browsing to File > New . Workbooks can be saved and opened again later within the application. You can then share them with others to demonstrate ideas, explore new APIs, or teach new concepts.

  2. Ensure a simple proof-of-concept piece of code works as expected in the Workbook
  3. Try adding / opening the Workbook in the Visual Studio project

๐Ÿ’ฃ Impact

  • The Xamarin Workbook may, or may not, be an asset that can also be added to the Visual Studio solution. If it can be added, then it might be nice if it's tightly integrated with Visual Studio. If it cannot be integrated, then there will be one more file (like README.md), that exists in the project, but not in the solution

โš–๏ธ Alternatives

  • Simply do not use Workbook(s), and just have ideas / code executable on separate branches, and referenced in pull requests. Based on experience with Swift playgrounds, there is a bit of a learning curve to getting them working exactly as if the code were in your project, but this is all about learning, right?!

๐Ÿค” Questions

If the Workbook(s) (might want one for Android, iOS, and Portable Class Library (Console?)) do not also work inside the Visual Studio solution, perhaps we should have a folder in the root of the project, Workbooks/?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.