Coder Social home page Coder Social logo

Comments (11)

jwhitlock avatar jwhitlock commented on April 28, 2024 2

This is tough. On one hand, I like to have machine-readable data for things like this. On the other hand, I'm not sure what the compatibility table should do with this information, or a browser plugin, or a caniuse-type display. Available in nightly is interesting for someone who wants to play with a feature, but not for shipping a website. I'm not sure that the machine-readable data is much more useful than a plain note "Available in Nightly as of Aug 30".

from browser-compat-data.

a2sheppy avatar a2sheppy commented on April 28, 2024 2

I do feel that having the channel information present is useful. Especially for experimental features that linger on the nightly channel for several releases. You want people to know about them, but also be clear that it's still so deeply experimental it hasn't been riding the trains, so to speak.

I don't see the harm in adding a channel field which can have values taken from among:

  • nightly
  • alpha
  • beta
  • release (optional; if channel field is missing, this is the default)

These are generic terms for the pretty standard channels that exist in most products. It would be up to the front-end to map these to the channel-specific names (like nightly → "Canary" for Chrome; and I assume that even though technically it's based on beta now, we'd use alpha → "Developer Edition" for Firefox.

Related, this would also let us note in machine-readable terms the progress of a feature along the train; just add another version record for each time it moves to another channel.

from browser-compat-data.

praveenpuglia avatar praveenpuglia commented on April 28, 2024 1

I think the compat data should focus on the following things.

  1. When a feature/property/value was really added to the stable version of a browser because most users are on stable channel.
  • Prefixed version
  • Standard version
  1. Data readability by a program and building the data around it. Which @jwhitlock has already mentioned. Example - The VSCode CSS Language Service needs to have this info in order to give proper autocompletion info in the editor.

Since developers might still need to know which features they can try out in nightlies, whatever UI is build to consume this compat data, that can have a "future" section which can list things which browsers are experimenting with. Right now, every browser has it's own channel of broadcasting what's new or what's coming up. But it can all live here and people get one source. Folks from browser vendor sides can come in and update this data whenever they feel like?

from browser-compat-data.

a2sheppy avatar a2sheppy commented on April 28, 2024

Couldn't you just put "Nightly" in the version field?

from browser-compat-data.

SebastianZ avatar SebastianZ commented on April 28, 2024

We already have compile_flag as type, which also goes in the direction of not being available normal release versions.
So, while a browser release channel isn't really a "flag", I think it's totally fine to have that info as machine readable data. If it's added to the data, I think the version, in which it got added should also be exposed.
This allows consumers of the data to display some information in the sense of "Be aware, this feature is only available in Firefox Nightly starting from version 60, it is not available in a stable release yet."

Sebastian

from browser-compat-data.

Elchi3 avatar Elchi3 commented on April 28, 2024

More discussions on this
https://discourse.mozilla.org/t/bcd-safari-tech-preview/33790
https://discourse.mozilla.org/t/bcd-question-flag-and-enabled-by-default-in-nightly-only/33449
#3103

Seems like "version_added": "nightly" is the latest proposal on this.
There was also a proposal to add a restriction field.

The next steps here are:

  • investigate the different proposals
  • audit the data in the repo to see how often we have "Nightly" cases
  • find out which proposal would suit us best for the found cases
  • research how data consumers would display nightly data (first and foremost MDN, but also VS Code) and why these matter to them.
  • research how nightly data will be maintained (nightly is a moving target).

from browser-compat-data.

a2sheppy avatar a2sheppy commented on April 28, 2024

Some thoughts on the next steps listed above (which I think is a good list, btw -- nicely put!):

  • While I'm not sure how often we see "nightly" cases specifically, there's certainly the feeling that it's often enough to be worth finding a solution (for me, anyway). Both Chrome and Firefox have features that are added to the experimental or nightly builds (canary or nightly for example) but don't ride their way down to release immediately. It's still worth sharing the availability of many or most of these features, to encourage experimentation and testing, while allowing the consumer of the data to determine how or if to present that information.
  • We can't really use version_added for this purpose. "version_added": "nightly" loses the information about what nightly version first added the feature. This is why I propose a separate field for this information.
  • It's worth considering if we want to allow the possibility of including special builds, such as if you have to use a special experimental branch of a browser in order to use a feature. Obviously that's extreme edge case country though.
  • I could see MDN, for example, presenting the information by displaying the version the same way we do now, but with perhaps a different background color and with text like "(Nightly only)" or a footnote "Available only in Firefox Nightly builds."
  • Others, like perhaps certain compatibility testers, might choose not to even use entries marked as being nightly-only.
  • It should be simple enough to create a tool to help monitor these. During each release cycle, you could run a tool that would list out all the channel-limited stuff and let you choose to remove or change the restrictions as appropriate.

The more I think about it, the more I like the idea of a channel field as I suggested in a previous comment, but with perhaps the addition of a "special" value, indicating a special build rather than alpha, beta, etc.

from browser-compat-data.

a2sheppy avatar a2sheppy commented on April 28, 2024

Instead of channel, maybe call it release-type. And probably worth allowing release-candidate as a value. I don't know how many of the browser outfits have RC builds anymore but it's worth allowing for the possibility.

from browser-compat-data.

ddbeck avatar ddbeck commented on April 28, 2024

I'm not trying to revive this issue, but I wanted to make a note while it was on my mind. In #3752, we dropped compile flags. I think however we decide to handle nightly or beta data—that is, variant builds of a browser—needs to square with the idea of omitting compile flag data (maybe this is unsquarable—I have not given it enough thought yet).

from browser-compat-data.

Elchi3 avatar Elchi3 commented on April 28, 2024

In #5072 (comment) @sideshowbarker expresses a use case for non-release data:

Part of the context here is that in the W3C/WHATWG world, we are now using the BCD data as part of the work we do in evaluating browser conformance to specs. In particular, we’ve been adding mechanisms to our spec-publishing tools that annotate the specs with links to MDN and with data from BCD. And for our purposes, what we care about is if there’s any version of a particular browser which has implemented support for a particular feature — even if it’s only in the current trunk build and not yet in a stable version widely used by developers.

from browser-compat-data.

Elchi3 avatar Elchi3 commented on April 28, 2024

This was fixed by #10334

from browser-compat-data.

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.