Visual F# Tools March 2015 Bug bash
Open source contributors such as yourself have worked with us over the last 10 months to fix bugs, design and implement new language features, add extra library routines, and enable additional IDE experiences.
Work with us once more to make sure that everyone who tries out our product is impressed with how reliable and bug-free it is. To do that, we need to make an effort to find as many bugs as we can so that we can then try to fix them before it is distributed widely.
To make it a little more fun, and to give you an extra incentive and to get your competitive juices flowing, we are offering an F# Cup<'t>
mug to the top three bug finders amongst you. Join us and win a Cup<'t>
The rules are pretty simple:
- Bugs must be reproducible on Visual Studio 2015 CTP 6
- Winners are chosen based on post-triage bug counts - duplicates bugs and issues deemed "by design" will not count toward the competition. Granting of the red "bug" tag is at the discretion of the Visual F# Team.
- Suggestions and feature requests are always welcome, but they don't count toward this bugbash unless they represent a design bug in a new Visual F# 4.0 feature (e.g. naming and argument placement issues on newly added collections APIs).
- Issues must be reported on the Visual F# Tools issues page from 2/27/2015 until 4/06/2015.
- The bug must have reliable repro steps that any member of the community can use to verify the bug and its fix.
- Remember, this is supposed to be fun, so have a good time! There will be other ways to get an F# contributor's mug in the future.
Bug Reporting
Report bugs on the Visual F# Tools issues page. A satisfactory bug report will contain
- A description of the problem, source code to demonstrate the issue, screenshots, and/or links to downloadable repro content if appropriate
- A clear expected outcome
- A detailed and clear repro
Any suspicions, suggestions, or investigations you have done pertinent to the bug report should ideally be included, to aid anyone looking to implement a fix.
If you would like, please include your Twitter handle so that we can use Twitter to let folks know about your great bug report, and create interest.
Testing Ideas
Compatibility / VS Side-by-Side / Project round-tripping with VS 2012 & VS 2013
These are often easy-to-find bugs due to the complexity of getting side-by-side and round-tripping working correctly. These scenarios are very important and ensure that developers are comfortable installing and using the latest versions of Visual F#
- Load your existing F# 3.0 and 3.1 projects
- Do they build correctly with F# 4.0?
- Does the resulting program run correctly?
- If you have VS 2012 or VS 2013 on your computer side-by-side with VS 2015
- Do your existing VS 2012/VS 2013 projects still build and run correctly in those versions of VS?
- Do your existing FSI scripts run correctly on VS 2015?
- If you create a project with F# VS 2013 and then open the project in VS 2015, modify it, and save it
- Does the program still build correctly with VS 2013?
- If you have F# libraries that you call from C# code, if you build the F# and C# projects with VS 2015
- Do they build correctly?
- Does the resulting program work correctly?
Project and Item Templates
In the past year we did a lot of work on templates, installation via VSIX rather than MSI, VSIX localization, added assembly metadata, and additional portable libraries
- Create new projects using each template type
- Is the version number correct?
- Are the metadata defaults as you expect, any spelling mistakes?
- Try out auto version number generation via AssemblyVersionAttribute
- Is the generated version number correct?
- Build projects using the portable library templates
- Can the portable libraries be referenced from C# and VB projects for the appropriate platforms?
Language changes, FSI improvements, and FSharp.Core improvements
There are a number of new language features and library improvements in F# 4.0, details here
-
Try out the new features in libraries and programs
- Do they work correctly?
- Are the arguments named and arranged conveniently (good for piping, etc)?
- Do they show up in intellisense?
- Are they available in each portable profile?
- Do they compose usefully?
-
FSI uses shadowcopy so that DLLs are not locked
- Does this break your scripts?
Bugs that have annoyed you for a long time
Every tool has bugs that vex you but you never get around to telling anyone about
- Try out your long-standing gripes
- Have they been fixed? If not, add an issue.
Web Programming
- Do your existing projects build and deploy correctly?
- Does Service Stack, MVC 5, or your web framework of choice work well with F# 4.0 and VS 2015?
- Do Dan Mohl's and Ryan Riley's MVC 5 templates install on VS 2015?
- Do they build?
- Do projects built using them deploy correctly?
And anything and everything else that you can come up with
- All product bugs related to Visual F# count
- You can add C#, VB and Roslyn Issues you discover here
- Re-checking fixed bugs is a good way to find new ones. Slight variations or related scenarios might have been missed. So check out our fixed bugs list for ideas.