Skip to content

Commit

Permalink
feat(vue): support ul refresh scroll (Tencent#4032)
Browse files Browse the repository at this point in the history
* feat(vue-next): fix beforeLoadStyle not work

* feat(vue): support_ul_refresh_scroll
  • Loading branch information
zealotchen0 committed Sep 18, 2024
2 parents 6b50f54 + 13163c6 commit dd97912
Show file tree
Hide file tree
Showing 1,098 changed files with 50,175 additions and 47,358 deletions.
30 changes: 17 additions & 13 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -38,43 +38,43 @@ CMakeLists.txt @ilikethese @etkmao
/framework/android/**/src/main/cpp/ @etkmao @ilikethese

# framework: ios
/framework/ios/ @ozonelmy @wwwcg
/framework/ios/ @wwwcg @ruifanyuan

# framework: voltron
/framework/voltron/ @lvfen @skindhu
/framework/voltron/ @lvfen @henryjin0511

# dom: others
/dom/ @etkmao @ilikethese

# renderer: native
/renderer/native/android/ @siguangli @iPel
/renderer/native/ios/ @ozonelmy @wwwcg
/renderer/native/ios/ @wwwcg @ruifanyuan

# renderer: tdf
/renderer/tdf/ @vimerzhao
/renderer/tdf/android/ @siguangli @iPel
/renderer/tdf/android/**/src/main/cpp/ @ilikethese @etkmao
/renderer/tdf/ios/ @ozonelmy @wwwcg
/renderer/tdf/ios/ @wwwcg @ruifanyuan

# renderer: voltron
/renderer/voltron/ @lvfen @skindhu
/renderer/voltron/ @lvfen @henryjin0511

# module: vfs
/modules/vfs/ @etkmao @ilikethese
/modules/vfs/android/ @siguangli @iPel
/modules/vfs/android/**/src/main/cpp/ @etkmao @ilikethese
/modules/vfs/ios/ @ozonelmy @wwwcg
/modules/vfs/voltron/ @lvfen @skindhu
/modules/vfs/ios/ @wwwcg @ruifanyuan
/modules/vfs/voltron/ @lvfen @henryjin0511

# module: voltron
/modules/voltron/ @lvfen @skindhu
/modules/voltron/ @lvfen @henryjin0511

# module: android
/modules/android/ @siguangli @iPel
/modules/android/jni/ @etkmao @ilikethese

# module: ios
/modules/ios/ @ozonelmy @wwwcg
/modules/ios/ @wwwcg @ruifanyuan

# module: footstone
/modules/footstone/ @etkmao @ilikethese
Expand All @@ -88,8 +88,9 @@ CMakeLists.txt @ilikethese @etkmao
# doc: example
/framework/examples/android-demo/ @siguangli @iPel
/framework/examples/android-demo/res/ @zealotchen0
/framework/examples/ios-demo/ @ozonelmy @wwwcg
/framework/examples/ios-demo/ @wwwcg @ruifanyuan
/framework/examples/ios-demo/res/ @zealotchen0
/framework/examples/voltron-demo/ @henryjin0511

# doc: pages
/*.md @zealotchen0
Expand All @@ -104,9 +105,9 @@ CMakeLists.txt @ilikethese @etkmao
/gradle/ @siguangli @iPel

# build: xcode
/HippySDK.xcworkspace/ @ozonelmy @wwwcg
/hippy.podspec @ozonelmy @wwwcg
/xcodeinitscript.sh @ozonelmy @wwwcg
/HippySDK.xcworkspace/ @wwwcg @ruifanyuan
/hippy.podspec @wwwcg @ruifanyuan
/xcodeinitscript.sh @wwwcg @ruifanyuan

# build: config
/buildconfig/ @ilikethese @etkmao
Expand All @@ -121,3 +122,6 @@ CMakeLists.txt @ilikethese @etkmao
/.markdownlintrc.json @zealotchen0
/PUBLISH.md @zealotchen0
/README.md @zealotchen0

# test
/tests/ios/ @wwwcg @ruifanyuan
10 changes: 10 additions & 0 deletions .github/workflows/3rd_prebuilt_v8.yml
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ jobs:
runs-on: [self-hosted, linux, shared]
container:
image: ghcr.io/${{ needs.context_in_lowercase.outputs.repository_owner }}/android-release:latest
options: --user root
strategy:
matrix:
cpu: [arm, arm64, x86, x64]
Expand All @@ -169,8 +170,13 @@ jobs:
- cpu: x64
arch: x86_64
steps:
- name: Setup GN
run: |
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git /usr/local/opt/depot_tools
export PATH=/usr/local/opt/depot_tools:$PATH
- name: Fetch v8
run: |
export PATH=/usr/local/opt/depot_tools:$PATH
fetch v8
cd v8
git checkout ${{ github.event.inputs.v8_revision }}
Expand All @@ -187,6 +193,7 @@ jobs:
- name: Sync third_party
working-directory: ./v8
run: |
export PATH=/usr/local/opt/depot_tools:$PATH
echo "target_os = ['android']" >> ../.gclient
gclient sync -D
- name: Prepare android_ndk
Expand All @@ -213,10 +220,13 @@ jobs:
- name: Generate ${{ matrix.arch }}
working-directory: ./v8
run: |
export PATH=/usr/local/opt/depot_tools:$PATH
gn gen out --args="target_os=\"android\" target_cpu=\"${{ matrix.cpu }}\" v8_target_cpu=\"${{ matrix.cpu }}\" android_ndk_root=\"${ANDROID_NDK_HOME}\" is_component_build=false v8_monolithic=true android32_ndk_api_level=21 android64_ndk_api_level=21 clang_use_chrome_plugins=false use_thin_lto=false use_custom_libcxx=false ${{ github.event.inputs.build_type == 'release' && 'is_debug=false is_official_build=true' || 'is_debug=true' }} ${{ github.event.inputs.build_args }}"
- name: Compile ${{ matrix.arch }}
working-directory: ./v8
run: |
export PATH=/usr/local/opt/depot_tools:$PATH
apt-get install -y ninja-build
ninja -C out v8_monolith
- name: Prepare package
working-directory: ./v8/out
Expand Down
6 changes: 1 addition & 5 deletions .github/workflows/ios_build_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,8 @@ jobs:
uses: actions/checkout@v3
with:
lfs: true
- name: Xcodegen
uses: xavierLowmiller/[email protected]
with:
spec: framework/examples/ios-demo/project.yml
version: '2.32.0'
- name: Demo
working-directory: framework/examples/ios-demo
run: |
pod install
xcodebuild build -destination "generic/platform=iOS" -workspace "HippyDemo.xcworkspace" -scheme "HippyDemo" -configuration ${{matrix.type}} CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO
6 changes: 0 additions & 6 deletions .github/workflows/project_artifact_compare.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,16 +89,10 @@ jobs:
with:
ref: ${{ matrix.ref }}
lfs: true
- name: Xcodegen
uses: xavierLowmiller/[email protected]
with:
spec: framework/examples/ios-demo/project.yml
version: '2.32.0'
- name: Build
if: ${{ matrix.ref }}
run: |
pushd framework/examples/ios-demo
xcodegen
pod install
xcodebuild build \
-destination 'generic/platform=iOS' \
Expand Down
134 changes: 134 additions & 0 deletions .github/workflows/project_artifact_snapshot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
name: '[project] artifact snapshot'

on:
workflow_dispatch:
inputs:
git_ref:
description: 'Git Ref'
type: string
required: true
version_name:
description: 'Version name'
type: string
required: true
registry_choice:
description: 'Registry choice'
type: choice
required: true
default: 'Both'
options:
- Default
- Github
- Both
is_release_for_android:
description: 'Release for Android'
type: boolean
default: true
required: false

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
context_in_lowercase:
if: github.event.inputs.is_release_for_android == 'true'
runs-on: ubuntu-latest
outputs:
repository_owner: ${{ steps.get_owner.outputs.lowercase }}
steps:
- name: Get repo owner(in lowercase)
id: get_owner
uses: ASzc/change-string-case-action@v2
with:
string: ${{ github.repository_owner }}

android_release:
if: github.event.inputs.is_release_for_android == 'true'
needs: context_in_lowercase
runs-on: ubuntu-latest
strategy:
matrix:
build_type: [Release]
include:
- build_type: Release
artifact_id: hippy-snapshot
container:
image: ghcr.io/${{ needs.context_in_lowercase.outputs.repository_owner }}/android-release:latest
steps:
- name: Checkout (${{ github.event.inputs.git_ref }})
uses: actions/checkout@v3
with:
ref: ${{ github.event.inputs.git_ref }}
lfs: true
- name: ${{ matrix.build_type }} build
env:
SIGNING_KEY_ID: ${{ secrets.ANDROID_SIGNING_KEY_ID }}
SIGNING_PASSWORD: ${{ secrets.ANDROID_SIGNING_PASSWORD }}
SIGNING_SECRET_KEY: ${{ secrets.ANDROID_SIGNING_SECRET_KEY }}
run: |
./gradlew assemble${{ matrix.build_type }} -PVERSION_NAME=${{ github.event.inputs.version_name }} -PPUBLISH_ARTIFACT_ID=${{ matrix.artifact_id }} -PINCLUDE_ABI_X86=true -PINCLUDE_ABI_X86_64=true
./gradlew signMavenAarPublication
- name: Pre Archive artifacts
shell: bash
run: |
pip3 install -U cos-python-sdk-v5
- name: Archive artifacts
working-directory: ./framework/android/build
shell: python3 {0}
run: |
from qcloud_cos import CosConfig
from qcloud_cos import CosS3Client
from urllib.parse import urlencode
import os
import tempfile
import zipfile
artifacts = [("outputs/aar/android-sdk.aar", "hippy/android/${{ matrix.artifact_id }}/${{ github.event.inputs.version_name }}/android-sdk.aar")]
for path, dirs, files in os.walk("intermediates/merged_native_libs/%s/out/lib" % "${{ matrix.build_type }}".lower()):
if files:
with zipfile.ZipFile(tempfile.mkstemp()[1], "w", zipfile.ZIP_DEFLATED) as zip_file:
for file in files:
zip_file.write(os.path.join(path, file), file)
artifacts.append((zip_file.filename, "hippy/android/${{ matrix.artifact_id }}/${{ github.event.inputs.version_name }}/symbols/%s.zip" % os.path.basename(path)))
metadata = {}
metadata["ci-name"] = "Github Action"
metadata["ci-id"] = "${{ github.run_id }}"
metadata["ci-url"] = "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
metadata["artifact-author"] = "${{ github.event.sender.login }}"
metadata["git-ref"] = "${{ github.event.inputs.git_ref }}"
config = CosConfig(Region="${{ secrets.COS_REGION }}", SecretId="${{ secrets.TC_SECRET_ID }}", SecretKey="${{ secrets.TC_SECRET_KEY }}")
client = CosS3Client(config)
for artifact in artifacts:
print("Uploading %s" % artifact[0])
response = client.upload_file(
Bucket="${{ secrets.COS_BUCKET_ARTIFACTS_STORE }}",
Key=artifact[1],
LocalFilePath=artifact[0],
Metadata={"x-cos-tagging": urlencode(metadata)}
)
print("Archived %s" % artifact[1])
- name: Publish to Github Packages
if: github.event.inputs.registry_choice == 'Both' || github.event.inputs.registry_choice == 'Github'
env:
SIGNING_KEY_ID: ${{ secrets.ANDROID_SIGNING_KEY_ID }}
SIGNING_PASSWORD: ${{ secrets.ANDROID_SIGNING_PASSWORD }}
SIGNING_SECRET_KEY: ${{ secrets.ANDROID_SIGNING_SECRET_KEY }}
MAVEN_USERNAME: ${{ secrets.GITHUB_ACTOR }}
MAVEN_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
MAVEN_URL: https://maven.pkg.github.com/${{ github.repository }}
run: |
./gradlew publish -PVERSION_NAME=${{ github.event.inputs.version_name }} -PPUBLISH_ARTIFACT_ID=${{ matrix.artifact_id }} -PINCLUDE_ABI_X86=true -PINCLUDE_ABI_X86_64=true
- name: Publish to OSSRH
if: github.event.inputs.registry_choice == 'Both' || github.event.inputs.registry_choice == 'Default'
env:
SIGNING_KEY_ID: ${{ secrets.ANDROID_SIGNING_KEY_ID }}
SIGNING_PASSWORD: ${{ secrets.ANDROID_SIGNING_PASSWORD }}
SIGNING_SECRET_KEY: ${{ secrets.ANDROID_SIGNING_SECRET_KEY }}
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
run: |
./gradlew publish -PVERSION_NAME=${{ github.event.inputs.version_name }} -PPUBLISH_ARTIFACT_ID=${{ matrix.artifact_id }} -PINCLUDE_ABI_X86=true -PINCLUDE_ABI_X86_64=true
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ framework/examples/android-demo/src/main/assets/
framework/examples/android-demo/libs/*
framework/examples/android-demo/maven-auth.properties
framework/examples/android-demo/.cxx/
framework/examples/ios-demo/HippyDemo.xcodeproj
framework/examples/ios-demo/HippyDemo.xcworkspace
framework/examples/ios-demo/Pods/*
framework/examples/ios-demo/Podfile.lock
Expand Down
2 changes: 1 addition & 1 deletion .husky/post-checkout
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
#!/bin/sh
command -v git-lfs >/dev/null 2>&1 || { echo >&2 "\nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting '.git/hooks/post-checkout'.\n"; exit 2; }
command -v git-lfs >/dev/null 2>&1 || { echo >&2 "\nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting the 'post-checkout' file in the hooks directory (set by 'core.hookspath'; usually '.git/hooks').\n"; exit 2; }
git lfs post-checkout "$@"
2 changes: 1 addition & 1 deletion .husky/post-commit
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
#!/bin/sh
command -v git-lfs >/dev/null 2>&1 || { echo >&2 "\nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting '.git/hooks/post-commit'.\n"; exit 2; }
command -v git-lfs >/dev/null 2>&1 || { echo >&2 "\nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting the 'post-commit' file in the hooks directory (set by 'core.hookspath'; usually '.git/hooks').\n"; exit 2; }
git lfs post-commit "$@"
2 changes: 1 addition & 1 deletion .husky/post-merge
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
#!/bin/sh
command -v git-lfs >/dev/null 2>&1 || { echo >&2 "\nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting '.git/hooks/post-merge'.\n"; exit 2; }
command -v git-lfs >/dev/null 2>&1 || { echo >&2 "\nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting the 'post-merge' file in the hooks directory (set by 'core.hookspath'; usually '.git/hooks').\n"; exit 2; }
git lfs post-merge "$@"
2 changes: 1 addition & 1 deletion .husky/pre-push
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
#!/bin/sh
command -v git-lfs >/dev/null 2>&1 || { echo >&2 "\nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting '.git/hooks/pre-push'.\n"; exit 2; }
command -v git-lfs >/dev/null 2>&1 || { echo >&2 "\nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting the 'pre-push' file in the hooks directory (set by 'core.hookspath'; usually '.git/hooks').\n"; exit 2; }
git lfs pre-push "$@"
10 changes: 8 additions & 2 deletions PUBLISH.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,12 @@ Android

* [gradle.properties](https://github.com/Tencent/Hippy/blob/master/android/sdk/gradle.properties#L25)

修改安卓的abi配置,支持armeabi-v7a和arm64-v8a
```
INCLUDE_ABI_ARMEABI_V7A=true
INCLUDE_ABI_ARM64_V8A=true
```

## 4. Update built-in packages and verify functionality

The new front-end SDK is then compiled with
Expand Down Expand Up @@ -93,8 +99,8 @@ git tag -a [VERSION] -m "version release xxx"
Commit the code and prepare to publish the PR merge into the master branch.

```bash
git push # 提交代码
git push --tags # 提交 tag
git push origin branch # 提交代码
git push origin tag # 提交 tag
```

## 6. Publish
Expand Down
31 changes: 31 additions & 0 deletions PrivacyInfo.xcprivacy
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>C617.1</string>
</array>
</dict>
</array>
<key>NSPrivacyCollectedDataTypes</key>
<array/>
<key>NSPrivacyTrackingDomains</key>
<array/>
<key>NSPrivacyTracking</key>
<false/>
</dict>
</plist>
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

![Hippy Group](https://img.shields.io/badge/group-Hippy-blue.svg) [![license](https://img.shields.io/badge/license-Apache%202-blue)](https://github.com/Tencent/Hippy/blob/master/LICENSE) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/Tencent/Hippy/pulls) ![node](https://img.shields.io/badge/node-%3E%3D10.0.0-green.svg) [![Actions Status](https://github.com/Tencent/Hippy/workflows/build/badge.svg?branch=master)](https://github.com/Tencent/Hippy/actions) [![Codecov](https://img.shields.io/codecov/c/github/Tencent/Hippy)](https://codecov.io/gh/Tencent/Hippy) [![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/Tencent/Hippy)](https://github.com/Tencent/Hippy/releases)

[Homepage](//tencent.github.io/Hippy/)
[Homepage](https://openhippy.com)

## 💡 Introduction

Expand Down Expand Up @@ -62,7 +62,7 @@ For iOS, we recommend to use iOS simulator when first try. However, you can chan
3. Choose a demo to build with `npm run buildexample [hippy-react-demo|hippy-vue-demo|hippy-vue-next-demo]`.

4. Install Xcodegen with `brew install xcodegen`, install CocoaPods with `brew install cocoapods`, install cmake with `brew install cmake`, then execute `xcodegen` command at `framework/examples/ios-demo` directory, which will create `HippyDemo.xcodeproj` and `HippyDemo.xcworkspace` files and install Cocoapods dependencies.
4. Install CocoaPods with `brew install cocoapods`, install cmake with `brew install cmake`, then execute `pod install` command at `framework/examples/ios-demo` directory, which will create `HippyDemo.xcworkspace` files and install Cocoapods dependencies.

5. Start the Xcode and build the iOS app with opening `framework/examples/ios-demo/HippyDemo.xcworkspace`.

Expand Down
Loading

0 comments on commit dd97912

Please sign in to comment.