pmed / v8pp

Bind C++ functions and classes into V8 JavaScript engine
http://pmed.github.io/v8pp/
Other
886 stars 118 forks source link

Roadmap #170

Closed YarikTH closed 2 years ago

YarikTH commented 2 years ago

What current status of the library and what are further plans? I see some confusing info:

  1. The last release was more than a year ago
  2. 43 commits to master since this release
  3. master changed the standard from c++11 to c++14 since last release
  4. There is a c++17 branch
    1. It is 115 commits ahead of master
    2. It is in more or less active development
    3. It contains at least changes of naming scheme (set, setconst -> cons, function, property)

So my questions:

  1. What plans on the further releases and when? Based on which branch? 1.8 or 2.0?
  2. Which branch is more actual? Master or c++17? I started to work on master and give feedback. Maybe I should switch to c++17 branch?
  3. Need any help? This library saves me a lot of time and nerves so I am highly interested in improving its quality.

P.S. If "discussions" would be enabled for this repository then it would be more appropriate place to... discuss it. Because this is not an issue.

pmed commented 2 years ago

Hi,

Previously I had been using v8pp in real projects. Nowdays the library is mostly in maintaince mode. I work on it in my free time, with no real usage. Anyways its's always a pleasure to know that it useful for someone's work.

Branch c++17 is actually a long standing plan for version 2.0, as you've already mentioned with changes in API. Currently the both master and c++17 branches are active. You can use the latter one, if you can change you code and use a recent C++17 compiler. Eventually this c++17 will become the main development branch.

A plan from out my head is following:

  1. CMake support
  2. Use find_package(V8 REQUIRED) in the v8pp/CMakeLists.txt (BTW, I was surprised there is no actual V8 package in Conan, and I couldn't manage to use V8 binaries from vcpkg)
  3. Use Github Actions as a build pipeline using the CMake builder. Currently TravisCI seems to be broken.
  4. Document the project code style, use .clang-format in the build pipeline.
  5. Automate release? (e.g. npm package)
  6. Make release of version 1.8, mark it as last 1.X release. Actualise documentation.
  7. Point master to the current c++17 branch, release it as version 2.0, continue active development there.
  8. Resolve open issues and pull requests.

Till September I'm on vacations, so no much activities here are expected.

pmed commented 2 years ago

Planned in projects section.