whats-dat-movie's People
Forkers
nikmacintoshwhats-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
- 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
- "What do we want?"
- "TESTS!"
- "When do we need them?"
- "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
- Open
pull_request_template.md
- 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
- 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
anddevelop
trigger new builds for supported devices - Email / SMS / FB Messenger / Slack notification indicating a new build
๐ค Implementation
// TODO
- Need to assess the various alternatives for the one with most pros versus cons
- Introduction to Continuous Integration with Xamarin
๐ฃ 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
- 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.
- English Markdown is available here
- 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.
๐ 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
-
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.
- Ensure a simple proof-of-concept piece of code works as expected in the Workbook
- 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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.