Skip to content

Commit d2af8e2

Browse files
authored
Add planning documents
Add the planning documents here - seems a better fit than putting them in with the source for now.
1 parent 99554d4 commit d2af8e2

File tree

2 files changed

+96
-0
lines changed

2 files changed

+96
-0
lines changed

ChakraCore Future Plan.md

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# ChakraCore Project Future
2+
3+
## Future Aim
4+
5+
Future releases of ChakraCore are planned by a community team of volunteers (please see history section at the end of this document for how this has come about). We will aim to:
6+
7+
1. Prioritise ease of use for potential embedders of ChakraCore - these are intended as our primary users. We will aim to reflect this priority in any design decisions including by prioritising API stability and providing detailed and user friendly documentation.
8+
9+
1. Work towards standards compliance - we recognise that ChakraCore is significantly behind in some areas. We will work towards standards compliance including seeking to fix existing deviations and implement new standards as they arise. Any deviation from standards should be considered a bug.
10+
11+
1. Improve performance - we will aim to to improve performance when we can.
12+
13+
1. Invite community involvement - this project is being continued by volunteers and input will be appreciated from any other volunteers with relevant skills and availability. We will aim to make the project easy to get involved in - if as a potential contributor you see any obvious barriers to entry please raise an issue to discuss them.
14+
15+
1. Simplify the codebase and test suite - when time permits and where practicable we will endeavour to perform housekeeping actions such as removing dead code, appropriate refactoring, combining related tests and removing unnecessary layering. We will also aim to introduce a consistent style guide.
16+
17+
## Core Community Team
18+
19+
The core team currently planning to work on this are:
20+
21+
- Richard Lawrence (@rhuanjl) - team coordinator (by virtue of having the most free time)
22+
- Kevin Smith (@zenparsing)
23+
- Sergey Rubanov (@chicoxyzzy) - JS standards compliance
24+
- Petr Penzin (@ppenzin) - WASM
25+
- Alex Syrotenko (@Fly-Style)
26+
27+
## Development process
28+
29+
This community development will proceed on the ChakraCore master branch. At a future time this repository may be transferred out of the microsoft organisation within Github - though it will remain here to begin with.
30+
31+
We will periodically (time scale TBD) publish a release plan document listing planned enhancements and proposed time scale for the next release. Major decisions such as these release plans will require approval from all members of the Core Community Team.
32+
33+
We will also aim to triage and address bug reports as received, depending on the scale of these issues they may be fixed immediately or left until a future release.
34+
35+
Pull requests will be invited from anyone who wishes to contribute in addition to the Core Community Team. Any pull request will be required to pass all CI checks and be reviewed by a member of the Core Community Team (different to its author) prior to being merged. Once the review is cleared and the reviwer and author are happy with the work any member of the Core Community Team may merge the PR.
36+
37+
Additionally any bug fix PR must include a test case that it has fixed; and any new feature PR must include tests for that feature.
38+
39+
Further documentation and guidance will eventually be created on PR best practises including code style and how to author tests - in its absence please ask if unsure.
40+
41+
## Continuous Integration (CI)
42+
43+
We will continue to use the existing check in CI for the time being. However we will aim to migrate this to a platform managed by the community team before March 2021 - we will seek Microsoft's assistance with this migration.
44+
45+
We will additionally ask Google's project OSS-Fuzz to provide continuous fuzzing for our work.
46+
47+
## Security Issues
48+
49+
Until March 2021 we will liaise with microsoft on any security issues in case they relate to ChakraCore 1.11 and Chakra.dll - the exact method for this is to be determined. For the time being please report any ChakraCore security concerns to microsoft via the microsoft security tech centre in the first instance.
50+
51+
## Licensing and Copyright
52+
53+
The project will continue to be licensed under the MIT license. However the license and copyright statements will be updated to say "Copyright (c) Microsoft Corporation and ChakraCore Community contributors".
54+
55+
## History
56+
57+
Historically ChakraCore was the core part of the javascript engine used in Microsoft Edge and shipped as Chakra.dll with windows.
58+
59+
Microsoft Edge now uses Chromium including v8 and hence microsoft is discontinuing their support of Chakra and by extension ChakraCore. They intend to provide security fixes to the version 1.11 release of until 09/03/2021. But no other future development.
60+
61+
However rather than discarding ChakraCore Microsoft have asked if a community team would like to continue it as an open source project.

Release 1.12 plan.md

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Plan for Version 1.12
2+
3+
## Timing
4+
5+
The last feature release of ChakraCore occurred on 29th June 2018 (version 1.10) since then there have been numerous security update releases and 1 non-security bug fix release (1.11). There has however been significant feature work performed since that date all of which is unreleased.
6+
7+
We would therefore like our first release to be done fairly quickly - however there are also some half complete pieces of work to finish before that as well as a variety of bugs introduced that should be fixed before that.
8+
9+
We will aim to do this first release by June to allow time for confirming the exact status of the project, completing unfinished work, performing testing and fixing bugs.
10+
11+
## Actions prior to release
12+
13+
We will endeavour to perform the below work prior to issuing this first community release in June. If time permits additional work may be done - conversely if time is too short the release may be produced with some of these actions not taken - in either event what has and has not been done will be explained.
14+
15+
1. Review major changes between 1.11 and master to generate an accurate set of release notes.
16+
17+
1. Review current master against JavaScript standards to identify major gaps including assessing against the tc39 list of stage 3 and stage 4 proposals and also testing with test262. This action may identify further actions to be taken before release including fixing small deviations from the standards.
18+
19+
1. Review changes to WASM proposals since last update to ChakraCore's WASM implementation, look for proposals that have became part of the MVP, and update opcodes when necessary on supported in-flight proposals.
20+
21+
1. Review all open bug reports and assess impact, fix where practicable.
22+
23+
1. Complete partially complete work including:
24+
25+
- Generator, async function and async-generator function enhancements and enabling of async-iteration and jitting of all of these types of functions.
26+
27+
- Implementation of Top level await
28+
29+
- RegExp ES6 properties and unicode mode
30+
31+
- further items may be added upon completion of reviews details above
32+
33+
1. Have Google OSS-Fuzz recommence fuzzing of the master branch and triage the first reports from them.
34+
35+
1. Determine release method - where will releases be posted? Who will post them? How will it be clear that this release is NOT supported by microsoft?

0 commit comments

Comments
 (0)