Comments (51)
Hi, Daniel,
We think there's a problem related to the new major version of Bundler that was released shortly after the New Year. If you would download our attempted fix from https://github.com/harvard-library/aspace-import-excel/archive/issue_46.zip , remove the current plugins/aspace-import-excel, and replacing it with the unzipped files (renaming, of course, to aspace-import-excel), run the initialize script, and try again, this hopefully will resolve the problem.
Sorry you're having trouble with this.
from aspace-import-excel.
from aspace-import-excel.
from aspace-import-excel.
from aspace-import-excel.
Hi,
If you're on the archivesspace-users mailing list, you will already have seen that we don't know (yet) how to fix this problem; I'm sorry for the delay. It seems that the new Bundler release isn't Playing Well With Others, despite their original assurances. We're in touch with lyrasis about this, as a fix may need to "come from the top" (we suspect that initializing any plugin with a Gemfile will have this problem! :-(
I'm also marking this as a duplicate with #46 (#46 ), as this was previously reported by someone running Aspace under Windows.
from aspace-import-excel.
Duplicate of #46
from aspace-import-excel.
Duplicate of #46
from aspace-import-excel.
from aspace-import-excel.
I hate to be the bearer of bad news, but it's pretty unlikely that installing on an earlier version will work - the core problem is that the ASpace release was built in a world where 2.0.1 wasn't out yet, and anything we're doing now is built in a world where it is out.
The build system definitely needs rethinking and reworking. I think if you checked out ASpace 2.5.1 from github, and built it into a zip yourself, then installed the plugin in the resulting build, that should bypass this?
from aspace-import-excel.
How did you end up with bundler 2.0.1 ?
from aspace-import-excel.
The initialize-plugin.bat|.sh bundle install
s plugin gems.
from aspace-import-excel.
Running ./scripts/initialize-plugin.sh aspace-import-excel
(ArchivesSpace 2.5.2RC) gives me Successfully installed bundler-1.16.1
on Ubuntu 18. That gives you bundler 2
on RHEL?
from aspace-import-excel.
Windows and OSX so far, on 2.5.1 release.
from aspace-import-excel.
Though I'm still seeing a problem with a version where I altered initialize-plugin.bat to do
gem install bundler -v1.17.1
bundle _1.17.1_ install
so it's clear that something else hinky is going on.
from aspace-import-excel.
from aspace-import-excel.
Are you doing this from a zip release or one you built yourself at some point?
from aspace-import-excel.
zip for me
from aspace-import-excel.
zips for both the 2.5.1 release and 2.5.2RC. Also just gave it a whirl on the only previously aspace-unaware machine I've got here - an '08 MacBook native booting Ubuntu - and still cannot replicate the issue. initialize-plugin.sh still respects bundler 1.16, even though when I installed ruby/bundler on the system it got 2.0.1.
from aspace-import-excel.
Laura, can you run archivesspace after you've initialized it? The original issue was that it seemed to be initialized, but re-starting archivesspace presented a problem.
from aspace-import-excel.
from aspace-import-excel.
Hmmm. I may have actually mis-remembered whether I replicated on OSX; but we've got Daniel on RHEL and Windows on multiple machines.
from aspace-import-excel.
Laura, can you run archivesspace after you've initialized it? The original issue was that it seemed to be initialized, but re-starting archivesspace presented a problem.
from aspace-import-excel.
Over the coming weekend I will be testing it on Centos7 minimal install, and CentOS7 developer install, and I will be testing migrating back to 2.4.x, installing the plugin, and re-migrate forward to 2.5.x.
I'll post here whatever happens.
from aspace-import-excel.
also, want to point out that I have tried to install the plugin with current ( 3.0.2 ) and previous ( 2.7.0 ) versions of gem and with bundler 1.16.1 set as the default version of bundler, and both using sudo and as root, still get the same errors.
from aspace-import-excel.
thought I had it this time, no cigar...
[dsprouse@tslac4avned plugins]$ sudo ../scripts/initialize-plugin2.sh aspace-import-excel
Successfully installed bundler-1.16.1
1 gem installed
Don't run Bundler as root. Bundler can ask for sudo if it is needed, and
installing your bundle as root will break this application for all non-root
users on this machine.
Fetching gem metadata from http://rubygems.org/........
Using bundler 1.16.1
Fetching coderay 1.1.1
Installing coderay 1.1.1
Fetching ffi 1.9.17 (java)
Installing ffi 1.9.17 (java)
Fetching method_source 0.8.2
Installing method_source 0.8.2
Fetching nokogiri 1.7.0.1 (java)
Installing nokogiri 1.7.0.1 (java)
Fetching slop 3.6.0
Installing slop 3.6.0
Fetching spoon 0.0.6
Installing spoon 0.0.6
Fetching pry 0.10.4 (java)
Installing pry 0.10.4 (java)
Fetching rubyzip 1.0.0
Installing rubyzip 1.0.0
Fetching rubyXL 3.1.0
Installing rubyXL 3.1.0
Bundle complete! 3 Gemfile dependencies, 10 gems now installed.
Use bundle info [gemname]
to see where a bundled gem is installed.
=====================================
=====================================
got this error in archivesspace.out:
[!] There was an error parsing Gemfile
: You cannot specify the same gem twice with different version requirements.
You specified: rubyzip (~> 1.2.2) and rubyzip (= 1.0.0). Bundler cannot continue.
from /var/www/aris/html/archivesspace/data/tmp/jetty-0.0.0.0-8089-backend.war-_-any-/webapp/WEB-INF/Gemfile:60
-------------------------------------------
require 'asutils'
> ASUtils.load_plugin_gems(self)
-------------------------------------------
from /var/www/aris/html/archivesspace/gems/gems/bundler-1.16.1/lib/bundler/dsl.rb:110:in `gem'
from (eval):6:in `<eval>'
from org/jruby/RubyBasicObject.java:1693:in `instance_eval'
from uri:classloader:/asutils.rb:245:in `block in load_plugin_gems'
from org/jruby/RubyArray.java:1734:in `each'
from uri:classloader:/asutils.rb:241:in `load_plugin_gems'
from /var/www/aris/html/archivesspace/data/tmp/jetty-0.0.0.0-8089-backend.war-_-any-/webapp/WEB-INF/Gemfile:60:in `<eval>'
from org/jruby/RubyBasicObject.java:1705:in `instance_eval'
from /var/www/aris/html/archivesspace/gems/gems/bundler-1.16.1/lib/bundler/dsl.rb:47:in `eval_gemfile'
from /var/www/aris/html/archivesspace/gems/gems/bundler-1.16.1/lib/bundler/dsl.rb:12:in `evaluate'
from /var/www/aris/html/archivesspace/gems/gems/bundler-1.16.1/lib/bundler/definition.rb:35:in `build'
from /var/www/aris/html/archivesspace/gems/gems/bundler-1.16.1/lib/bundler.rb:135:in `definition'
from /var/www/aris/html/archivesspace/gems/gems/bundler-1.16.1/lib/bundler.rb:101:in `setup'
from /var/www/aris/html/archivesspace/gems/gems/bundler-1.16.1/lib/bundler/setup.rb:20:in `<main>'
from org/jruby/RubyKernel.java:961:in `require'
from uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:133:in `require'
from /var/www/aris/html/archivesspace/data/tmp/jetty-0.0.0.0-8089-backend.war-_-any-/webapp/WEB-INF/app/main.rb:1:in `<main>'
from org/jruby/RubyKernel.java:961:in `require'
from uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:55:in `require'
from /var/www/aris/html/archivesspace/data/tmp/jetty-0.0.0.0-8089-backend.war-_-any-/webapp/WEB-INF/app/main.rb:1:in `block in (root)'
from org/jruby/RubyBasicObject.java:1687:in `instance_eval'
from /var/www/aris/html/archivesspace/data/tmp/jetty-0.0.0.0-8089-backend.war-_-any-/webapp/WEB-INF/config.ru:1:in `(root)'
from /var/www/aris/html/archivesspace/data/tmp/jetty-0.0.0.0-8089-backend.war-_-any-/webapp/WEB-INF/config.ru:4:in `<main>'
from launcher/launcher.rb:92:in `start_server'
from launcher/launcher.rb:157:in `main'
from launcher/launcher.rb:261:in `<main>'
You're seeing this error because you use JRuby::Rack::ErrorApp::ShowStatus
.
=====================================
=====================================
environment:
[root@tslac4avned ~]# ruby -v; gem -v; gem info bundler; cat /var/www/aris/html/archivesspace/scripts/initialize-plugin2.sh
ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-linux]
3.0.2
*** LOCAL GEMS ***
bundler (2.0.1, 1.17.3, 1.17.2, 1.16.1, 1.12.5)
Authors: André Arko, Samuel Giddins, Colby Swandale, Hiroshi
Shibata, David Rodríguez, Grey Baker, Stephanie Morillo, Chris
Morris, James Wen, Tim Moore, André Medeiros, Jessica Lynn Suttles,
Terence Lee, Carl Lerche, Yehuda Katz
Homepage: http://bundler.io
License: MIT
Installed at (2.0.1): /usr/local/lib/ruby/gems/2.5.0
(1.17.3): /usr/local/lib/ruby/gems/2.5.0
(1.17.2): /usr/local/lib/ruby/gems/2.5.0
(1.16.1, default): /usr/local/lib/ruby/gems/2.5.0
(1.12.5): /usr/local/lib/ruby/gems/2.5.0
The best way to manage your application's dependencies
#!/bin/bash
plugin="$1"
We'll provide our own values for these
unset GEM_HOME
unset GEM_PATH
export ASPACE_LAUNCHER_BASE="$("dirname $0
"/find-base.sh)"
cd "$ASPACE_LAUNCHER_BASE/gems/gems"
BUNDLER_VERSION=$(ls | grep bundler | cut -d'-' -f 2)
cd "$ASPACE_LAUNCHER_BASE/plugins/$plugin"
if [ "$plugin" = "" ]; then
echo "Usage: $0 "
exit
fi
if [ "$?" != "0" ]; then
echo "Failed to find plugin: $plugin"
exit
fi
export JRUBY=
for dir in ../../gems/gems/jruby-; do
JRUBY="$JRUBY:$dir/lib/"
done
export GEM_HOME=gems
gem info bundler to get version, the original line breaks with "malformed expression" error
#java $JAVA_OPTS -cp "../../lib/$JRUBY" org.jruby.Main -S gem install bundler -v "$BUNDLER_VERSION"
java $JAVA_OPTS -cp "../../lib/$JRUBY" org.jruby.Main -S gem install bundler -v 1.16.1
java $JAVA_OPTS -cp "../../lib/*$JRUBY" org.jruby.Main ../../gems/bin/bundle install --gemfile=Gemfile
from aspace-import-excel.
Hi, Daniel,
It's clear that, while your presenting problem, like #46 , was due to the bundler version upgrade, it seems that you have at least one other problem: the initialize-plugin.sh
script provided in the core code should not be breaking. I'm tagging @lorawoodford and @lmcglohon on that problem.
That said, when I saw the version collision error message, it was strangely familiar, and I remembered why we hadn't included the Gemfile.lock
in our repo: it was to avoid this collision, for which I have no explanation.
I've created Yet Another Branch (sorry), which doesn't include Gemfile.lock
. I suggest that, for your initialize-plugin2.sh
, you first see what version of the bundler is at
archivesspace/gems/gems/bundler-*
and use that for your explicit bundler, then try again with the zipfile of this branch: issue_47 .
I'm sorry for how frustrating this is.
from aspace-import-excel.
from aspace-import-excel.
Why are you sudoing
things?
sudo ../scripts/initialize-plugin2.sh aspace-import-excel
I'm not sure you should be doing anything with sudo
maybe that's messing up permissions? If something ends up owned by root or some other user or not executable that might cause troubles. I think everything should be find owned by your regular user.
from aspace-import-excel.
also, just noticed, sudo ../scripts/initialize-plugin2.sh aspace-import-excel
why is that path ../
instead of just ./
that seems wrong maybe? I think you'd want to run that in the ArchivesSpace directory.
from aspace-import-excel.
first of all, when you run the initialize script it gives you a warning not to run it as root, if you don't use sudo you don't have permissions to modify the directories, so that isn't a thing.
Successfully installed bundler-1.16.1
1 gem installed
Don't run Bundler as root. Bundler can ask for sudo if it is needed, and
installing your bundle as root will break this application for all non-root
users on this machine.
and if you provide the right location, relative or absolute, for the initialize-plugin.sh and the name only for the plugin, that's all that matters, it finds it. It only gives errors if you try to give a pathname/name combination for the argument to the script, which is in this case aspace-import-excel. thanks.
from aspace-import-excel.
It works fine without sudo for me, I see that warning too. I think maybe it's just a warning and not a fatal error?
from aspace-import-excel.
I have run it as root several times, it isn't the issue.
There are problems with the $BUNDLER_VERSION variable in initialize-plugin.sh, which isn't prepared for being coerced into an array, it gives a malformed expression upon finding multiple bundler versions and makes no effort to pick the default version.
ERROR: While executing gem ... (Gem::Requirement::BadRequirementError)
Illformed requirement ["1.12.5\n1.16.1"]
Gem::GemNotFoundException: can't find gem bundler (>= 0.a)
find_spec_for_exe at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems.rb:271
activate_bin_path at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems.rb:298
I forced it to use one, and then after it is forced to use a specific version, the Gemfile.lock generated reports back with the wrong bundler version. It is actually reporting back a version that doesn't even seem to exist on my machine
BUNDLED WITH
1.12.5
from aspace-import-excel.
also, the plugin may want to include (in the installation instructions) to remove the Gemfile.lock each time if circumstances force you to make multiple attempts at the installation of the plugin.
from aspace-import-excel.
Hi, Daniel,
Good point about the Gemfile.lock removal, although I tend (and suggest to others) to either delete the entire tree (or rename it), and unzip again, to make sure that there aren't other subtle issues.
Do you now have a clean install? or are you still thrashing?
from aspace-import-excel.
from aspace-import-excel.
I just did this on centos7, no issues. The only part I didn't do was MySQL. I don't think that would matter in this case.
docker run -d -p 8080:80 -p 8443:443 -p 8022:22 -t otherdata/centos-docker-lamp:latest
docker exec -it hopeful_hamilton bash
as root:
1 useradd blake
2 yum install java
3 su blake
su blake:
1 wget https://github.com/archivesspace/archivesspace/releases/download/v2.5.2/archivesspace-v2.5.2.zip
2 unzip archivesspace-v2.5.2.zip
3 cd archivesspace
4 cd plugins/
5 wget https://github.com/harvard-library/aspace-import-excel/archive/v2.1.18.zip
6 unzip v2.1.18.zip
7 mv aspace-import-excel-2.1.18/ aspace-import-excel
8 ./scripts/initialize-plugin.sh aspace-import-excel
9 ./archivesspace.sh start
10 grep -i error logs/archivesspace.out
No errors when initializing plugin:
./scripts/initialize-plugin.sh aspace-import-excel
Fetching: bundler-1.16.1.gem (100%)
Successfully installed bundler-1.16.1
1 gem installed
Fetching gem metadata from http://rubygems.org/..............
Resolving dependencies...
Using bundler 1.16.1
Fetching nokogiri 1.10.1 (java)
Installing nokogiri 1.10.1 (java)
Fetching rubyzip 1.2.2
Installing rubyzip 1.2.2
Fetching rubyXL 3.3.29
Installing rubyXL 3.3.29
Bundle complete! 1 Gemfile dependency, 4 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
from aspace-import-excel.
and I got this again anyway. I get this every time, so I think that another part of the plugin or another gem entirely is trying to use two versions of rubyzip.
my current Gemfile and .lock look like this:
[root@tslac4avned aspace-import-excel]# cat Gemfile
ASpaceGems.setup if defined? ASpaceGems
source 'http://rubygems.org'
gem 'rubyXL', "3.1.0", :require => false
gem 'rubyzip', "1.0.0", :require => false
gem 'pry'
[root@tslac4avned aspace-import-excel]# cat Gemfile.lock
GEM
remote: http://rubygems.org/
specs:
coderay (1.1.2)
ffi (1.10.0-java)
method_source (0.9.2)
nokogiri (1.10.1-java)
pry (0.12.2-java)
coderay (> 1.1.0)> 0.9.0)
method_source (
spoon (~> 0.0)
rubyXL (3.1.0)
nokogiri (>= 1.4.4)
rubyzip (>= 1.0.0)
rubyzip (1.0.0)
spoon (0.0.6)
ffi
PLATFORMS
java
DEPENDENCIES
pry
rubyXL (= 3.1.0)
rubyzip (= 1.0.0)
BUNDLED WITH
1.16.1
[root@tslac4avned aspace-import-excel]#
and, as usual when trying to install the pplugin, I get this when I try to start archivesspace:
[!] There was an error parsing Gemfile
: You cannot specify the same gem twice with different version requirements.
You specified: rubyzip (~> 1.2.2) and rubyzip (= 1.0.0). Bundler cannot continue.
from /var/www/aris/html/archivesspace/data/tmp/jetty-0.0.0.0-8089-backend.war-_-any-/webapp/WEB-INF/Gemfile:60
-------------------------------------------
require 'asutils'
> ASUtils.load_plugin_gems(self)
-------------------------------------------
from /var/www/aris/html/archivesspace/gems/gems/bundler-1.16.1/lib/bundler/dsl.rb:110:in `gem'
from (eval):6:in `<eval>'
from org/jruby/RubyBasicObject.java:1693:in `instance_eval'
from uri:classloader:/asutils.rb:245:in `block in load_plugin_gems'
from org/jruby/RubyArray.java:1734:in `each'
from uri:classloader:/asutils.rb:241:in `load_plugin_gems'
from /var/www/aris/html/archivesspace/data/tmp/jetty-0.0.0.0-8089-backend.war-_-any-/webapp/WEB-INF/Gemfile:60:in `<eval>'
from org/jruby/RubyBasicObject.java:1705:in `instance_eval'
from /var/www/aris/html/archivesspace/gems/gems/bundler-1.16.1/lib/bundler/dsl.rb:47:in `eval_gemfile'
from /var/www/aris/html/archivesspace/gems/gems/bundler-1.16.1/lib/bundler/dsl.rb:12:in `evaluate'
from /var/www/aris/html/archivesspace/gems/gems/bundler-1.16.1/lib/bundler/definition.rb:35:in `build'
from /var/www/aris/html/archivesspace/gems/gems/bundler-1.16.1/lib/bundler.rb:135:in `definition'
from /var/www/aris/html/archivesspace/gems/gems/bundler-1.16.1/lib/bundler.rb:101:in `setup'
from /var/www/aris/html/archivesspace/gems/gems/bundler-1.16.1/lib/bundler/setup.rb:20:in `<main>'
from org/jruby/RubyKernel.java:961:in `require'
from uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:133:in `require'
from /var/www/aris/html/archivesspace/data/tmp/jetty-0.0.0.0-8089-backend.war-_-any-/webapp/WEB-INF/app/main.rb:1:in `<main>'
from org/jruby/RubyKernel.java:961:in `require'
from uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:55:in `require'
from /var/www/aris/html/archivesspace/data/tmp/jetty-0.0.0.0-8089-backend.war-_-any-/webapp/WEB-INF/app/main.rb:1:in `block in (root)'
from org/jruby/RubyBasicObject.java:1687:in `instance_eval'
from /var/www/aris/html/archivesspace/data/tmp/jetty-0.0.0.0-8089-backend.war-_-any-/webapp/WEB-INF/config.ru:1:in `(root)'
from /var/www/aris/html/archivesspace/data/tmp/jetty-0.0.0.0-8089-backend.war-_-any-/webapp/WEB-INF/config.ru:4:in `<main>'
from launcher/launcher.rb:92:in `start_server'
from launcher/launcher.rb:157:in `main'
from launcher/launcher.rb:261:in `<main>'
You're seeing this error because you use JRuby::Rack::ErrorApp::ShowStatus
.
from aspace-import-excel.
this is the only occurrence of the string "rubyzip 1.2.2" anywhre in the aspace-import-excel directory:
[root@tslac4avned aspace-import-excel]# grep -R -e "rubyzip 1.2.2" ./*
./gems/specifications/rubyzip-1.2.2.gemspec:# stub: rubyzip 1.2.2 ruby lib
from aspace-import-excel.
from aspace-import-excel.
Running it in a container shouldn't matter at all, but just in case, I spun up a full virtualbox centos vm and followed the same steps I did in the docker container, with the same results. ArchivesSpace started with the plugin enable with no issues. The only thing I did as root was installing java, I didn't sudo anything.
from aspace-import-excel.
Hi, Daniel,
I'm sorry; I've been away for a while. I just noticed that the Gemfile you cat
'd above is way out of date!
This is what you should be seeing :
ASpaceGems.setup if defined? ASpaceGems
source 'http://rubygems.org'
gem 'rubyXL', "3.3.29", :require => false
Remind me which release you're trying to implement? For any version of Aspace 2.22 or higher,, you should be using aspace-import-excel V2.1.18
from aspace-import-excel.
Hi all, just wondering how this was going? Did you figure it out?
from aspace-import-excel.
from aspace-import-excel.
Hi all, just wondering how this was going? Did you figure it out?
from aspace-import-excel.
from aspace-import-excel.
Hi all, just wondering how this was going? Did you figure it out?
from aspace-import-excel.
Hello, was this issue resolved? What was done to fix the issue? I'm running into the same issue on a Windows Server
from aspace-import-excel.
from aspace-import-excel.
from aspace-import-excel.
Hello, thank you for your replies. We are running ArchivesSpace v2.8.1, aspace-import-excel plugin v3.0.3, and mysql 8.0.24 (which is currently the latest build). Windows server is 2019, fresh install with Java jre1.8.0_291 which was also recently downloaded. The software works fine until I uncomment the line in the cofig.rb (AppConfig[:plugins] = ['aspace-import-excel'] ) for this plugin and then it just refuses to load the admin panel (port 8080) but it does load the public site (port 8081).
from aspace-import-excel.
from aspace-import-excel.
Related Issues (20)
- Problem with ASpace Service starting after Plugin install HOT 12
- Processing stopped at row 6 [Error(s) parsing Excel File No processible data rows found!] HOT 11
- The file you have chosen is not an Excel Spreadsheet HOT 3
- Uploading Multiple Digital Objects to Archival Objects as import HOT 2
- Enhancements when importing archival objects with containers? HOT 3
- Ref ID not found error HOT 3
- please help with install issue HOT 20
- Updating existing archival objects? HOT 3
- Search/match for agents is too loose HOT 1
- Importing Language to Archival Object Basic Info Rather than Language Notes HOT 2
- Could not find gem 'rubyXL (= 3.3.29) java' with aspace-import-excel v2.1.17 on AS 2.6.0 HOT 5
- Duplicate Entries after Import and long import time HOT 3
- Series of error upon import HOT 7
- xlink namespace in extref causes scopecontent note import to fail HOT 5
- Compatibility with AS v2.7.0? HOT 9
- Ref ID not importing into resource record HOT 2
- Language of materials note not importing into resource record HOT 6
- Won't Close If You Miss The File First Try
- Could not find gem 'rubyXL (= 3.3.29) java' with aspace-import-excel v3.0.4 on AS 2.8.1 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aspace-import-excel.