mini_suffix 0.1.0 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 0be3c2c9d92f4a37a7691c18bb0cfcef55c1231f
4
- data.tar.gz: 65a80e40e464a618508698c3d906d54d31c8a06d
2
+ SHA256:
3
+ metadata.gz: fccde82176bf00cfeafda11ca5155185a0dd476a6a22531289883a20d20da96d
4
+ data.tar.gz: e8e30e2c0433f05fb37338809276c909c2dcf82c9dc5075c48b2a469870e7928
5
5
  SHA512:
6
- metadata.gz: c18c41f0b55013130fad3aae53d83d80ac14123435cb24ea444e8f5c9ebd6850384a734b395099d91dada8af5a8096e8cc4179617585eb04e4d5313fb46667bf
7
- data.tar.gz: f02b57073cbfa0f41bb0a84dd44a97cbe0b863518003d26d876012612ea9da7502c074fd49e559840d37b60a75094b708657e4c7f911496df8817b814b867130
6
+ metadata.gz: ff8f7597ce5345ce451ec496d48ff667dec1b13e86d0075af34a1f1baacf2d70c38b20648122f3adb49558a0468d5452e4647770939348cd285156fd3bf0fbf2
7
+ data.tar.gz: 203f22ca8c0da035d40291600a19d3552967e276d857edbb66dea702fc10bf4002c6c1e14c4d82c9fa04e84f8a1223df1ecd7c4e3dd552212d36049f924a0e13
@@ -0,0 +1,49 @@
1
+ name: Mini Suffix Tests
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches:
7
+ - master
8
+ - main
9
+
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-latest
13
+ name: Ruby ${{ matrix.ruby }}
14
+ strategy:
15
+ fail-fast: false
16
+ matrix:
17
+ ruby: ["2.7", "2.6", "2.5"]
18
+ steps:
19
+ - uses: actions/checkout@v2
20
+ - uses: ruby/setup-ruby@v1
21
+ with:
22
+ ruby-version: ${{ matrix.ruby }}
23
+ - name: Bundler cache
24
+ uses: actions/cache@v2
25
+ with:
26
+ path: vendor/bundle
27
+ key: ${{ runner.os }}-${{ matrix.ruby }}-gems-${{ hashFiles('**/Gemfile.lock') }}
28
+ restore-keys: |
29
+ ${{ runner.os }}-${{ matrix.ruby }}-gems-
30
+ - name: Setup gems
31
+ run: |
32
+ bundle config path vendor/bundle
33
+ bundle install --jobs 4
34
+ - name: Tests
35
+ run: bundle exec rspec
36
+ publish:
37
+ if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master')
38
+ needs: build
39
+ runs-on: ubuntu-latest
40
+
41
+ steps:
42
+ - uses: actions/checkout@v2
43
+
44
+ - name: Release Gem
45
+ uses: discourse/publish-rubygems-action@v2
46
+ env:
47
+ RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
48
+ GIT_EMAIL: team@discourse.org
49
+ GIT_NAME: discoursebot
data/.gitmodules ADDED
@@ -0,0 +1,3 @@
1
+ [submodule "libpsl"]
2
+ path = libpsl
3
+ url = https://github.com/rockdaboot/libpsl.git
data/CHANGELOG.md ADDED
@@ -0,0 +1,24 @@
1
+ # 0.3.3
2
+
3
+ * Add libpsl shared libary for Linux aarch64
4
+
5
+ *xfalcox*
6
+
7
+ # 0.3.2
8
+
9
+ * Bump libpsl to v0.21.1, and bump binaries
10
+ * Add binary for Apple silicon devices
11
+
12
+ *davidtaylorhq*
13
+
14
+ # 0.3.1
15
+
16
+ * Add libpsl shared libary for Linux ppc64le
17
+
18
+ *runlevel5*
19
+
20
+ # 0.3.0
21
+
22
+ * Add libpsl shared library for osx support.
23
+
24
+ *tgxworld*
data/README.md CHANGED
@@ -3,7 +3,6 @@
3
3
  ## Installation
4
4
 
5
5
  ### Debian
6
- `sudo apt-get install libpsl-dev`
7
6
 
8
7
  Add this line to your application's Gemfile:
9
8
 
@@ -31,7 +30,7 @@ MiniSuffix.domain("www.careers.gov.sg")
31
30
  # => "careers.gov.sg"
32
31
  ```
33
32
 
34
- ##Benchmark
33
+ ## Benchmark
35
34
 
36
35
  ```
37
36
  # benchmark/bench.rb
@@ -59,6 +58,15 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
59
58
 
60
59
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
61
60
 
61
+ ## Updating libpsl
62
+
63
+ Libpsl binaries are bundled with the gem. The current version is checked out as a submodule in `./libpsl/`. To update, checkout a later commit
64
+ in the submodule (ideally matching an upstream release tag). You will then need to rebuild the binaries for all architectures. This requires running `./build-libpsl.sh` in each environment. Depending on your setup, you may be able to accomplish that via virtual machines and/or Docker.
65
+
66
+ Check the comments in `./build-libpsl.sh` for more information.
67
+
68
+ The submodule bump and updated binaries should be checked in to the repository.
69
+
62
70
  ## Contributing
63
71
 
64
72
  Bug reports and pull requests are welcome on GitHub at https://github.com/discourse/mini_suffix.
data/build-libpsl.sh ADDED
@@ -0,0 +1,28 @@
1
+ #! /bin/bash
2
+
3
+ set -e
4
+ export DEBIAN_FRONTEND=noninteractive
5
+ cd $(dirname ${BASH_SOURCE[0]})/libpsl
6
+
7
+ # A rough script to build libpsl from source, and move the binary to the /vendor directory.
8
+ #
9
+ # On linux, you will need a number of dependencies:
10
+ # apt-get update
11
+ # apt-get install -y meson gcc clang libtool llvm-dev valgrind python3 python3-setuptools libicu-dev
12
+ #
13
+ # On macOS, run this script in the homebrew build environment using `brew sh -c ./build-libpsl.sh`
14
+ #
15
+ # If you're running this, make sure to update the binaries for all other architectures as well
16
+
17
+ rm -rf builddir
18
+ meson builddir --buildtype=release -Druntime=no -Dbuiltin=libicu
19
+ ninja -C builddir
20
+ ninja -C builddir test
21
+
22
+ if [[ "$OSTYPE" == "darwin"* ]]; then
23
+ cp builddir/src/libpsl.dylib ../vendor/libpsl.darwin-$(arch).dylib
24
+ else
25
+ cp builddir/src/libpsl.so ../vendor/libpsl.$(arch).so
26
+ fi
27
+
28
+ echo "Done $(arch)"
@@ -1,3 +1,3 @@
1
1
  module MiniSuffix
2
- VERSION = "0.1.0"
2
+ VERSION = "0.3.3"
3
3
  end
data/lib/mini_suffix.rb CHANGED
@@ -4,7 +4,14 @@ require 'ffi'
4
4
  module MiniSuffix
5
5
  extend FFI::Library
6
6
 
7
- ffi_lib File.join(File.dirname(File.expand_path('..', __FILE__)), 'vendor/libpsl.so')
7
+ ffi_lib [
8
+ File.join(File.dirname(File.expand_path('..', __FILE__)), 'vendor/libpsl.aarch64.so'),
9
+ File.join(File.dirname(File.expand_path('..', __FILE__)), 'vendor/libpsl.x86_64.so'),
10
+ File.join(File.dirname(File.expand_path('..', __FILE__)), 'vendor/libpsl.ppc64le.so'),
11
+ File.join(File.dirname(File.expand_path('..', __FILE__)), 'vendor/libpsl.darwin-i386.dylib'),
12
+ File.join(File.dirname(File.expand_path('..', __FILE__)), 'vendor/libpsl.darwin-arm64.dylib'),
13
+ ]
14
+
8
15
  attach_function :psl_builtin, [], :pointer
9
16
  attach_function :psl_registrable_domain, [:pointer, :string], :string
10
17
  attach_function :psl_get_version, [], :string
data/mini_suffix.gemspec CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
23
23
 
24
24
  spec.add_dependency 'ffi', '~> 1.9'
25
25
 
26
- spec.add_development_dependency "bundler", "~> 1.16"
27
- spec.add_development_dependency "rake", "~> 10.0"
28
- spec.add_development_dependency "rspec", "~> 3.0"
26
+ spec.add_development_dependency "bundler"
27
+ spec.add_development_dependency "rake", "> 10.0"
28
+ spec.add_development_dependency "rspec", "> 3.0"
29
29
  end
Binary file
Binary file
Binary file
Binary file
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mini_suffix
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guo Xiang Tan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-29 00:00:00.000000000 Z
11
+ date: 2021-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -28,42 +28,42 @@ dependencies:
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '1.16'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '1.16'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '10.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '10.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '3.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.0'
69
69
  description:
@@ -73,9 +73,11 @@ executables: []
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
+ - ".github/workflows/ci.yml"
76
77
  - ".gitignore"
78
+ - ".gitmodules"
77
79
  - ".rspec"
78
- - ".travis.yml"
80
+ - CHANGELOG.md
79
81
  - Gemfile
80
82
  - LICENSE.txt
81
83
  - README.md
@@ -83,10 +85,15 @@ files:
83
85
  - benchmark/bench.rb
84
86
  - bin/console
85
87
  - bin/setup
88
+ - build-libpsl.sh
86
89
  - lib/mini_suffix.rb
87
90
  - lib/mini_suffix/version.rb
88
91
  - mini_suffix.gemspec
89
- - vendor/libpsl.so
92
+ - vendor/libpsl.aarch64.so
93
+ - vendor/libpsl.darwin-arm64.dylib
94
+ - vendor/libpsl.darwin-i386.dylib
95
+ - vendor/libpsl.ppc64le.so
96
+ - vendor/libpsl.x86_64.so
90
97
  homepage: https://github.com/discourse/mini_suffix
91
98
  licenses:
92
99
  - MIT
@@ -106,8 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
113
  - !ruby/object:Gem::Version
107
114
  version: '0'
108
115
  requirements: []
109
- rubyforge_project:
110
- rubygems_version: 2.6.13
116
+ rubygems_version: 3.1.6
111
117
  signing_key:
112
118
  specification_version: 4
113
119
  summary: FFI wrapper for libpsl
data/.travis.yml DELETED
@@ -1,5 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.4.2
5
- before_install: gem install bundler -v 1.16.0
data/vendor/libpsl.so DELETED
Binary file