ncipollo / release-action Goto Github PK
View Code? Open in Web Editor NEWAn action which manages a github release
License: MIT License
An action which manages a github release
License: MIT License
Describe the bug
The issue is a specific case of #20
To Reproduce
Expected behavior
Need to be able to create release for the specific branch
Is your feature request related to a problem? Please describe.
Hi, thanks for this super useful action! Can we please include the scope required for the GitHub Token for the correct execution of this action in the README file? I think this can help people in giving just the right scope to the step :) Thanks!
Describe the solution you'd like
Mention minimum scopes it needs to create a release and upload the artifacts...
Describe alternatives you've considered
Guess the scope it needs and try if it works..
Additional context
None.
In this ticket we will update the ArtifactGlobber
so that it causes the action to fail immediately if it detects any of the resolved artifact paths point to a directory. This will prevent a release being generated which is missing it's artifacts and also provide some clarity when this issue is encountered (the error thrown by the API can lead to some confusion).
Release succeeds, but released files are not available/404
It appears that when I add the tag field like how I think you have it documented, the files are "uploaded" and everything looks amazing, but when I try to download them they aren't really there.
To Reproduce
This is the configuration I used that caused the problem:
- name: create release
id: create_release
uses: ncipollo/release-action@v1
with:
tag: ${{ github.ref }}
name: ${{ steps.prep.outputs.rname }}
draft: false
prerelease: false
bodyFile: ${{ steps.prep.outputs.body }}
artifacts: "artifacts/*"
token: ${{ secrets.GITHUB_TOKEN }}
When I remove the tag
field, the files are uploaded & all goes to plan.
This works great:
- name: create release
id: create_release
uses: ncipollo/release-action@v1
with:
name: ${{ steps.prep.outputs.rname }}
draft: false
prerelease: false
bodyFile: ${{ steps.prep.outputs.body }}
artifacts: "artifacts/*"
token: ${{ secrets.GITHUB_TOKEN }}
Expected behavior
Either the documentation needs to be updated or there is a bug in the tag handling code.
Describe the bug
A basic implementation thrown an error with code MODULE_NOT_FOUND
Run ncipollo/release-action@7461bfe83946fc198f507edec4c13f2cda9102dd
internal/modules/cjs/loader.js:800
throw err;
^
Error: Cannot find module '@actions/github'
Require stack:
- /home/runner/work/_actions/ncipollo/release-action/7461bfe83946fc198f507edec4c13f2cda9102dd/lib/Main.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:797:15)
at Function.Module._load (internal/modules/cjs/loader.js:690:27)
at Module.require (internal/modules/cjs/loader.js:852:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (/home/runner/work/_actions/ncipollo/release-action/7461bfe83946fc198f507edec4c13f2cda9102dd/lib/Main.js:31:29)
at Module._compile (internal/modules/cjs/loader.js:959:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
at Module.load (internal/modules/cjs/loader.js:815:32)
at Function.Module._load (internal/modules/cjs/loader.js:727:14)
at Function.Module.runMain (internal/modules/cjs/loader.js:1047:10) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/home/runner/work/_actions/ncipollo/release-action/7461bfe83946fc198f507edec4c13f2cda9102dd/lib/Main.js'
]
}
To Reproduce
Steps to reproduce the behavior:
- name: Create Release
uses: ncipollo/release-action@7461bfe83946fc198f507edec4c13f2cda9102dd
with:
name: Release ${{ github.ref }}
artifacts: module.tgz
artifactContentType: application/tar
discussionCategory: Releases
token: ${{ secrets.GITHUB_TOKEN }}
Expected behavior
For the version to be released.
Screenshots
N/A
System:
Additional context
N/A
Describe the bug
I have this in my CI:
https://github.com/maxisme/notifi/blob/3150b7dbed44a3d46553b065bbab8ea35bc0af6f/.github/workflows/ci.yml#L261-L270
I am getting this error:
https://github.com/maxisme/notifi/runs/2655999641?check_suite_focus=true
Yet it still created the release and tag (since deleted)
Is your feature request related to a problem? Please describe.
This release action seems to be a perfect drop-in replacement for the recently archived/obsolete https://github.com/actions/create-release release action. However, the upload_url
action output parameter seems to be missing which hinders use in more advanced usage scenarios.
Describe the solution you'd like
Would be great if this action could implement upload_url
as an integral action output parameter so that in advanced workflows user can add release assets using other actions.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Currently, it's required to specify ${{ secrets.GITHUB_TOKEN }}
manually.
But the token can be get via github.token and github.token can be default value
Describe the solution you'd like
A clear and concise description of what you want to happen.
Set ${{ github.token }}
to default value of token action input
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
N/A
Additional context
Add any other context or screenshots about the feature request here.
N/A
Maybe I am misreading and don't see the option, but i would like to run this in a manual job, that creates a draft of the release, where the repository has not been tagged yet with the new version. Similar to how the github ui allows you to prep a release without tagging.
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
I am using the following
https://github.com/shreyanshp/gitops/blob/trunk/.github/workflows/cherry_pick_prs.yml#L53
omitBodyDuringUpdate: true
However it does not append, instead just leaves it as it is
https://github.com/shreyanshp/gitops/releases/tag/untagged-93d7dfa9687aa591ebee
Hello, I'm currently migrating my Pipeline from Travis-CI to GitHub Action and run across this action for creating releases.
I was wondering if it's possible, for untagged commits, to create a tag or to be more precise, move an existing tag. I have a "continuous" tag that points to my last commit, after the pipeline finishes the artifacts are uploaded to a release that represents that tag. On the next push, the "continuous" tag is moved to a new hash, the old release is deleted and a new release is created where all artifacts are uploaded again. Because multiple jobs create such artifacts, the release can only be created once per commit.
Is it possible to implement such a scenario with this action?
Describe the bug
I'm compiling LaTeX and using your action to get the artifact and then generate a release. The release is generated without a problem, but the artifact is never uploaded
To Reproduce
My yaml configuration for your action is the following:
- uses: ncipollo/release-action@v1
with:
artifacts: main_v${{ needs.create_new_release_tag.outputs.new-tag }}
tag: "${{ needs.create_new_release_tag.outputs.new-tag }}"
commit: main
body: "New Release of documentation"
token: ${{ secrets.AUTO_RELEASE_TOKEN }}
The Artifact looks like this after being uploaded:
The release itself only contains the source, but not the main_v0.0.1
in this case
Expected behavior
The file main_v0.0.1
should be inserted into the newest release
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
The action should have some baseline support for updating existing releases (this seems to be something which several people have hit).
Is your feature request related to a problem? Please describe.
I want to be able to have 1 release for github actions where my artifacts have a different filename each time the action is run.
Right now it just keeps adding artifacts to the same release, see https://github.com/Rosalie241/GLideN64/releases/tag/github-actions
Describe the solution you'd like
An option which'd remove all artifacts from the release before uploading the artifacts would be perfect.
I'm not really familiar with typescript/javascript (hence why I didn't open a PR) but I think something like this code should work?
private async deleteArtifactsFromRelease(releaseId: number): Promise<void> {
const releaseAssets = await this.releases.listArtifactsForRelease(releaseId)
for (const artifact of releaseAssets) {
core.debug(`Deleting existing artifact ${artifact.name}...`)
await this.releases.deleteArtifact(artifact.id)
}
}
Describe alternatives you've considered
I've considered keeping the filename the same but that isn't ideal.
Additional context
https://github.com/Rosalie241/GLideN64/blob/master/.github/workflows/build.yml#L198-L230
https://github.com/Rosalie241/GLideN64/releases/tag/github-actions
Error->
Error undefined: No tag found in ref or input!
I'm using the source tree for tagging the commits & also tried this command ->
git tag v1.0.5
git push origin v1.0.5
git push -u origin master
maybe I'm doing something wrong.I'm new to GitHub actions.
workflow file:-
name: Build
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]
steps:
- uses: actions/[email protected]
- name: Cache node modules
uses: actions/[email protected]
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Node ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: npm install and npm run build
run: |
npm i
npm run build
- name: Push Build to Releases
uses: ncipollo/release-action@v1
with:
artifacts: "dist/paper-dj-ui/*"
token: ${{ secrets.TOKEN }}
Thanks & regards,
saurabh
We use this action with the flag allowUpdates
set to true
because we want to update "Draft" PRs with the latest changes until we manually do a release.
Today it, because of a miss configuration on our side, this action as reverted from published to draft a release we had. This happened because of the `allowUpdates' flag, but I think this is a bug, because a published version should never be updated (even with that flag).
Describe the bug
running this action results in
Error: Error undefined: Parameter token or opts.auth is required
You can see the workflow run ant this error here
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The MSI package and the checksum file, which are already saved as "artifacts", are published as a release.
Additional cotext
I'm a beginner and just started with "actions". So please bear with me ;)
Maybe I'm misunderstanding things, but I assume the configured GITHUB token is default and I don't need to create it neither in me repo settings nor in the general settings...
Any help or guidance into the right direction would be very much appreciated.
And THANK YOU for this great ACTION :)
Hi! Currently Im trying to automate things and we are working in private repository.
Im working on self updater, which should read latest tag version from the release, but it would be easier to do it without any personal access token, just with neighbour public repository.
Describe the bug
release-action fails when trying to upload artifacts to replace existing artifacts in an existing release.
To Reproduce
Steps to reproduce the behavior:
example.zip
allowUpdates
and replacesArtifacts
to true
when creating a release with same name and tagexample.zip
Expected behavior
When allowUpdates
and replacesArtifacts
are set to true, this Github Action should delete and replace the existing artifact with the new version of the artifact of the same name, as provided in the artifact
or artifacts
input.
Also, when the upload fails, the workflow should probably fail too, to indicate that something has gone wrong.
Screenshots
macos-latest
error msg 1
macos-latest
error msg 2 (it somehow printed the HTML code from Github...?)
ubuntu-latest
error msg
windows-latest
error msg 1
windows-latest
error msg 2
Github Action Virtual Environment:
macos-latest
, ubuntu-latest
, and windows-latest
Additional context
The error message is different for each different OS used for Github Action virtual environment.
Hi! Im curious, can this release action actually push tags?
Im using https://github.com/PaulHatch/semantic-version to calculate next tag version, and this would be great if release-action can push it.
I'm trying to use release-action to publish my release to github. When I run the action, it fails with the error: ##[error]Error 401: Bad credentials
. Here is part of the config yml:
- name: Publish release
env:
RELEASENAME: $(date +%y%m%d)
uses: ncipollo/release-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
artifact: rootfs/targz/install.tar.gz
tag: ${RELEASENAME}
What did I do wrong?
Hi
What is the cause of this error, I used an automatic TAG, is it possible that the problem?
https://github.com/v2fly/geoip/blob/master/.github/workflows/main.yml
I got an error when uploading a file larger than 2GB.
Is it not allowed to upload files larger than 2GB in github?
Failed to upload artifact miui_TUCANA_21.5.31_cb42ec9bed_11.0.zip. File size (3437981539) is greater than possible Buffer: 2147483647 bytes.
Hi,
I'm trying to setup automated build + release/update of the "latest" tag for kcov. It's almost working, but the created release is using the latest commit from master while the build is running on a different branch because I'm still testing...lol. I tried setting commit: GITHUB_SHA
and it's still behaving the same. I'm sure it's something simple I'm missing, but I'm so tired from trying to work my new job that I can't figure it out.
Is this the designed behavior, or a bug?
I'd like to have the option to label the artifact being uploaded as a release asset to have a consistent UI display name across builds, while keeping the file name itself unique for each build.
I've considered simply using the "Update a Release Asset" endpoint to patch it just after uploading, but being able to do it with this action is preferred.
Thanks for your time.
When setting allowUpdates
to true
, the release's name and body will be replaced with default values (for example a list of commits for the body). It would be great if those settings/texts of an existing release could be preserved (either by default or via an input called preserveTexts
for example).
Note that I did not set the body
and name
inputs.
This would not work.
jobs:
build:
runs-on: ubuntu-16.04
steps:
- uses: actions/checkout@v1
- uses: ncipollo/release-action@v1
with:
artifact: "bin/*"
token: ${{ secrets.GITHUB_TOKEN }}
Describe the bug
When I create a release using the artifacts
parameter, the file does not get added to the release and reports the following error for each one:
Failed to upload artifact [filename]. EISDIR: illegal operation on a directory, read.
To Reproduce
My build can be seen here. Not sure if it is specific to using actions/upload-artifact
, the job itself is fairly simple:
release:
runs-on: ubuntu-latest
needs:
- exports
- exports-macos
steps:
- uses: actions/download-artifact@v2
with:
path: build/
- run: |
version=${GITHUB_REF/refs\/tags\/v/}
echo "version=${version}" >> $GITHUB_ENV
- uses: ncipollo/release-action@v1
with:
name: Release v${{env.version}}
tag: ${{env.version}}
draft: true # for testing
allowUpdates: true
artifacts: build/*.zip
token: ${{ secrets.GITHUB_TOKEN }}
Expected behavior
File added to the release
Screenshots
Example Github Workflow run
Is it possible?
name: Schedule releases
on:
schedule:
- cron: '0 0 * * *'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Tagname
run: echo "DATE=$(date +%y%m%d)" >> $GITHUB_ENV
- name: Release
uses: ncipollo/release-action@v1
with:
artifacts: "release.tar.gz,foo/*.txt"
tag: day${{ env.DATE }}
token: ${{ secrets.GITHUB_TOKEN }}
Describe the bug
The action sometimes creates draft when explicitly said don't.
To Reproduce
I have set up a workflow where it checks if a tag exists. If the tag already exists, it will delete the tag and release first, then uses this action to recreate another.
Expected behavior
I expect it to create releases instead of drafts.
Screenshots
Desktop (please complete the following information):
Additional context
# This is a basic workflow to help you get started with Actions
name: CI
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the main branch
push:
branches: [ main ]
pull_request:
branches: [ main ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
# compile tex file
- name: LaTeX Action
uses: xu-cheng/latex-action@v2
with:
# The root LaTeX file to be compiled
root_file: resume.tex
latexmk_use_lualatex: true
# format datetime to 'v2021.6.26'
- name: Set env
run: echo "::set-env name=NOW::$(date +'v%Y.%m.%d')"
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
# check if tag already exists in current day. If so, it will
# delete the current tag and replace with the new one
# check if tag already exists
- uses: mukunku/[email protected]
id: checkTag
with:
tag: ${{ env.NOW }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# delete tag if exists
- uses: dev-drprasad/[email protected]
if: ${{ steps.checkTag.outputs.exists }}
with:
delete_release: true # default: false
tag_name: ${{ env.NOW }} # tag name to delete
repo: anthonyive/resume # target repo (optional). defaults to repo running this action
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# create release
- name: Create release
uses: ncipollo/release-action@v1
with:
artifacts: "resume.pdf"
tag: ${{ env.NOW }}
draft: false
token: ${{ secrets.GITHUB_TOKEN }}
When putting a variable into the name like this, github throws an error.
- name: Release
uses: ncipollo/release-action@v1
with:
name: onCourse ${{ env.VERSION }}
artifacts: "server/build/distributions/onCourseServer-*.zip", "server/build/distributions/onCourseServer-*.sha256"
body: "See release notes here https://www.ish.com.au/onCourse/doc/release-notes/${{ env.VERSION }}/release-notes.html"
token: ${{ secrets.GITHUB_TOKEN }}
https://github.com/ishgroup/oncourse/actions/runs/945003848/workflow
Is your feature request related to a problem? Please describe.
I see that your GitHub Action workflow files are using outdated versions.
You can automate updating these versions with Dependabot.
Example, your build.yml
file uses a old version of actions/checkout
:
jobs:
check_pr:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
The latest stable version of actions/checkout
is @v2
😉.
See: https://github.com/actions/checkout/releases
Describe the solution you'd like
Create a Dependabot config file that tells Dependabot to update Github Action workflow files with a PR.
Describe alternatives you've considered
Use Renovate bot to get workflow updates (and for other dependencies if you want).
The benefit of Renovate bot is that it can automerge the PRs, so you're not doing so much manual work.
You'd need to install the Renovate bot app into your GitHub account and give it permission to access this repository.
If you don't want to install an app, you can use Dependabot. 😉
Additional context
I'm wiling to create the Dependabot config file or the Renovate bot configuration file.
getting a cryptic error
##[error]Validation Failed
##[error]Node run failed with exit code 1
when attempting to release to a priv. git repo. I tagged the release and ensured access token is set properly. Maybe a more verbose err output would be a help too.
Describe the bug
I have two main branches in my repo, master and releases/*. Active development happens under the releases branch and then merged into master when deploying for production. I use paulhatch/semantic-version to obtain the release version which works as expected. The issue is, when I push to my releases branch where the actions below are included in the workflow, the release is tagged to the latest commit of the master branch, not the releases branch, which is technically in the past. How do I get the release tag to attach to the most recent commit in the releases branch?
To Reproduce
Steps to reproduce the behavior:
- name: Get Application Version
id: semantic_version
uses: paulhatch/[email protected]
with:
tag_prefix: "v"
major_pattern: "(MAJOR)"
minor_pattern: "(MINOR)"
format: "${major}.${minor}.${patch}"
short_tags: false
bump_each_commit: false
- name: Create GitHub Release
uses: ncipollo/release-action@v1
with:
artifacts: build_v${{ steps.semantic_version.outputs.version }}.zip
tag: v${{ steps.semantic_version.outputs.version }}
commit: ${{ env.GITHUB_SHA }}
name: v${{ steps.semantic_version.outputs.version }}
token: ${{ secrets.GITHUB_TOKEN }}
Expected behavior
I would like the release to reference the most recent commit in the releases branch, not the master branch.
I'm using your great action in combination with a webhook. For this scenario it is quite unfortunate that the release is first published and after that artifacts are uploaded.
I would like to propose a configuration switch that would, if enabled, create a release as a draft and after artifacts are uploaded, it would publish the release.
If it sounds good to you, I would be interested in delivering a PR.
I can't speak English. I try to use translation to describe my problems
When I build multiple versions and release them, the following error occurs
Run ncipollo/release-action@v1
##[error]Validation Failed
##[error]Node run failed with exit code 1
It seems that only one submission can be made
This is my test address
While bumping dependencies I noticed that octokit seems to have completely changed their type system (seems to have happened in 6.0.0
). Instead of defining types directly now, they have an Endpoints
array you need to pull the types from.
See https://github.com/octokit/types.ts
This update will requires updates to a few areas of the action (Action.ts, etc).
It looks like GitHub allows you to create duplicate draft releases. This prevents the action from updating the existing action because it tries to create first.
I'm trying to use the action to create a new release and update that release. Unfortunately it keeps creating new releases.
Have done what is mentioned in the notes, specifying both tag and commit, but still creates duplicates. Have tried with bot the sha variable, and "master".
It appears perhaps that the tag is not created?
- name: Release
uses: ncipollo/release-action@v1
with:
artifacts: "${{env.RELEASE_NAME}}"
allowUpdates: true
token: ${{ secrets.GITHUB_TOKEN }}
draft: true
prerelease: true
name: "City Chain (Release ${{env.VERSION}})"
#commit: "${{github.sha}}"
commit: master
tag: v${{env.VERSION}}
Screenshot of produced releases:
I've noticed some of the dependencies falling pretty far behind. The github dependencies in particular are getting pretty outdated.
Hi,
I was getting an Error as '404: Not found'
while creating a release artifact for a flutter project. I have built an apk file, but was unable to attach it to the tag due to this error. Path to the artifact seems to be fine. Am I missing something here?
- name: Push APK to Releases
uses: ncipollo/release-action@v1
with:
artifacts: "build/app/outputs/apk/debug/*.apk"
token: ${{ secrets.TOKEN }}
I believe we simply need to add an action input for the category, then provide that to the release calls via discussion_category_name
.
The omitBody
and omitName
flags were added to resolve #15, though after some thought I think that would only partially implement the requested functionality. It would be better if there was a mechanism to have the action only omit name and body for updates (i.e allow them to be set for new releases, but preserve changes to name and body on updates).
First thanks for sharing the Action. It's the best one I've found so far.
I have a particular need but can't for the life of me get it to work. Basically, I want to update a release that has a fixed tag with the latest content of the repo, from a particular branch. What's happening is that the release assets's Source Code always contains the old source files although the branch has been updated. If that makes any sense at all?
The use case for example is to create a nightly-build from the dev
branch. Or on demand.
My action script is:
name: Build v3 Firmware - dev branch
on:
push:
branches:
- "dev"
paths:
- 'CHANGELOG_LATEST.md'
- './src/version.h'
workflow_dispatch:
branches: [ dev ]
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
ref: dev
- name: Version
id: fetch_version
run: |
version=`grep -E '^#define EMSESP_APP_VERSION' ./src/version.h | awk '{print $3}' | sed 's/"//g'`
echo "::set-output name=s::$version"
- name: Changelog
run: cat CHANGELOG_DEV.md > BODY.md
- name: Release
uses: ncipollo/release-action@v1
with:
name: dev build v${{steps.fetch_version.outputs.s}}
tag: dev
prerelease: true
allowUpdates: true
artifacts: "*.ini"
bodyFile: "BODY.md"
token: ${{ secrets.GITHUB_TOKEN }}
I'm probably doing something wrong and should do a commit
or tag
action first?
https://github.com/proddy/CI_TEST/blob/v3/.github/workflows/build_v3_firmware.yml
Another workflow that has on: release its not triggered when a release is created in another workflow using this action.
Is this a limitation from github ?
Hi,
thanks for this great action!
I am having problem with artifact not being recognized, and I can't figure out what is the problem.
Here is the exact run that failed: https://github.com/wasp-lang/wasp/runs/2423559707?check_suite_focus=true#step:11:1 .
There is a step before that creates the file to be used as an artifact: https://github.com/wasp-lang/wasp/runs/2423559707?check_suite_focus=true#step:10:5 .
I tried adding step in between that does pwd && ls
and it worked as expected: artifact is where it is supposed to be, and pwd
is workflows working directory waspc/
.
I am out of ideas how to fix this - any help is welcome!
How can I use repo
parameter to release to a different repository?
Testing shown that seemingly only the repo name is required (not org/repo
).
I receive Error: Error 403: Resource not accessible by integration
which is probably due ${{ secrets.GITHUB_TOKEN }}
is the wrong thing to use; however, i'm unsure what config/secrets to use for a github organization (not personal repo).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.