Git Product home page Git Product logo

Comments (14)

NeilFraser avatar NeilFraser commented on May 8, 2024

At Google the build is continuously treated as releasable. We work exclusively at head. Any in-between points that are not fit for release are either made on private branches or ar flagged off so as not to interfere with production.

from blockly.

jamesward avatar jamesward commented on May 8, 2024

You are missing the point of tagging releases. Versions enable the ecosystem around your library to have a stable release point to depend on, write docs around, etc.

from blockly.

NeilFraser avatar NeilFraser commented on May 8, 2024

The current version is 6909e38. We normally push a new version once or twice a day. There are a lot of codebases that depend on Blockly, so we are very careful about maintaining backwards compatibility.

Google's products generally don't have discrete versions. Such as Closure (https://github.com/google/closure-library/).

from blockly.

jameswald avatar jameswald commented on May 8, 2024

As a third party developer outside of Google, it is difficult to consume a library without meaningful version codes. A versioning technique such as http://semver.org/ allows us to stay up to date without picking up breaking changes unintentionally.

from blockly.

NeilFraser avatar NeilFraser commented on May 8, 2024

The Google approach is to have all code (from Gmail to self-driving cars) in a single code base, with everything at head. That way nobody has to ever worry about versions. There is only one version.

As a result, we are rather careful about not creating breaking changes.

from blockly.

gcarre avatar gcarre commented on May 8, 2024

Google Guava is an example of a versioned Google library though: https://code.google.com/p/guava-libraries/

from blockly.

dwelch2344 avatar dwelch2344 commented on May 8, 2024

+1 to this. Been burned in the past using "never breaking change" dependencies before, enough so that we'd rather fork a project and create our own repo for it to manage the dependency

from blockly.

NeilFraser avatar NeilFraser commented on May 8, 2024

Hmm, Guava is an interesting example. It is a subset of the Java core libraries used inside Google. We are unable to keep the externally-published Guava project at head since a lot of manual work needs to go into making sure that confidential or licenced code doesn't end up being published. Thus there is a more traditional release cycle where Google's code is periodically forked, scrubbed, and released. Definitely not the way we like to operate, but in that case necessary.

If you want a "release version" and are afraid of the future, just grab a random commit (e.g. 6909e38) and sync against that. But we've made a commitment not to break existing code, so syncing to head is really best.

from blockly.

n0mer avatar n0mer commented on May 8, 2024

@NeilFraser c'mon, the code sample published at https://developers.google.com/blockly/installation/toolbox does not work with current master version of blockly source code. I had to use HTML code from repository, because it was slightly ahead of sample published.

Also i prefer to reference some version via webjars, but due to lack of semantic versioning it is currently unknown what to use as a wide-known "version". Git commit hashtag? date-time in some format? long timestamp? This confuses a lot.

And this "trunk" approach is quite questionable - how do you introduce breaking API changes?

from blockly.

NeilFraser avatar NeilFraser commented on May 8, 2024

https://developers.google.com/blockly/installation/toolbox does not work with
current master version of blockly source code.

Can you elaborate? I copied and pasted each code sample into a test file and they all worked (not counting the fictitious custom blocks in the tree example).

And this "trunk" approach is quite questionable - how do you introduce breaking API changes?

We don't. The last breaking API change that I'm aware of was on 11 March 2013 when we rolled back some badly planned code that had been checked in without review.

from blockly.

jroper avatar jroper commented on May 8, 2024

Google may have a single code base, but the world doesn't. Until there is a single hash for the entire world of software and every software project in the world is kept perpetually in sync, your argument is ridiculous.

from blockly.

n0mer avatar n0mer commented on May 8, 2024

@jroper , i support you thought.

Imagine a corporate environment, let's say some rich global investment bank, with it's own procedures, external regulations, compliance, politics etc. So deployment could happen only twice a year.

So, where should i look for the piece of documentation that was relevant 6 months ago?

Plain tagging source codebase together with corresponding documentation source might help here a lot.

Just to make things clear - you are doing great job, no questions here. Just please provide us the way to effectively use your code in our non-google environments.

And, by the way - what is currently suggested way to include blockly .js files into generic web/html/css/js project? How can i manage this dependency, is it published to jsapi.google.com, or available somehow via brew and likes?

Webjars availability is in place, but only due to the proactiveness and creativity of it's maintainer that is willing (at least for now) to overcome these artificual administrative barriers and non-semantic versioning approach.

from blockly.

n0mer avatar n0mer commented on May 8, 2024

@NeilFraser , sure.

Initially i used webjars version with sample provided with documentation.
Then i realized that this SVN version is not relevant, and updated my .js files from github shapshot.

Things still did not work, so i found "toolbox" example in github source trunk - only then problems disappeared.

Errors were, AFAIR, about some missing block types.

from blockly.

n0mer avatar n0mer commented on May 8, 2024

just now i compared view-source:https://blockly-demo.appspot.com/static/demos/toolbox/index.html with ./blockly/demos/toolbox/index.html - contents are identical. Still no way to see what github commit hash corresponds to currently deployed view-source:https://blockly-demo.appspot.com/static/demos/toolbox/index.html

Maybe in my case i faced an issue that code was commited to github, but blockly-demo instance was not yet refreshed. But due to the lack of any versioning it is impossible to tell this for sure, anyway.

from blockly.

Related Issues (20)

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.