diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1fc3550..7e417c1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,5 +1,6 @@
 stages:
     - build
+    - deploy
 
 variables:
     VLC_UBUNTU_IMAGE: registry.videolan.org/vlc-rs-libvlc-stable-ubuntu:20211117143343
@@ -15,3 +16,23 @@ vlc-rs-build:
     script:
         - . $CARGO_HOME/env
         - cargo build --all
+
+vlc-rs-deploy:
+    tags:
+        - docker
+        - amd64
+    stage: deploy
+    image:
+        name: $VLC_UBUNTU_IMAGE
+    variables:
+    #    CARGO_TOKEN: $CARGO_TOKEN
+    rules:
+        - if: '$CI_COMMIT_TAG =~ /^(\d+\.)?(\d+\.)?(\*|\d+)/'
+    script:
+        - . $CARGO_HOME/env
+        # - cargo publish --token "$CARGO_TOKEN"
+        - cargo publish --dry-run
+    artifacts:
+        name: "${CI_COMMIT_TAG}"
+        paths:
+            - target/package/vlc-rs-*.crate
\ No newline at end of file
diff --git a/Cargo.toml b/Cargo.toml
index 7382cb0..9f9703b 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "vlc-rs"
-version = "0.3.0"
+version = "0.4.0"
 authors = ["T. Okubo <t.okubo.rx78+github@gmail.com>"]
 
 description = "Rust bindings for libVLC media framework."
@@ -19,8 +19,5 @@ crate-type = ["rlib"]
 
 [dependencies]
 libc = "0.2"
-libvlc-sys = { path = "libvlc-sys" }
+libvlc-sys = { version = "0.2.0", path = "libvlc-sys" }
 
-[features]
-default = []
-use-bindgen = ["libvlc-sys/use-bindgen"]
diff --git a/libvlc-sys/Cargo.toml b/libvlc-sys/Cargo.toml
index c437a6c..8cc9a0f 100644
--- a/libvlc-sys/Cargo.toml
+++ b/libvlc-sys/Cargo.toml
@@ -21,12 +21,8 @@ crate-type = ["rlib"]
 libc = "0.2"
 
 [build-dependencies]
-bindgen = {version = "0.59", optional = true }
+bindgen = {version = "0.59"}
 pkg-config = "0.3"
 
 [target.'cfg(target_os = "windows")'.build-dependencies]
-vswhom = "0.1.0"
-
-[features]
-default = []
-use-bindgen = ["bindgen"]
+vswhom = "0.1.0"
\ No newline at end of file