要構建relay
,我們需要最新的穩定版rust
。crate
被拆分為具有多個功能的工作區,因此在執行構建或執行測試時,請始終確保傳遞--all
和--all-features
標誌。processing
功能還需要c
編譯器和cmake
。
要安裝開發環境,必須安裝librdkafka
並在path
上。 在macos
上,我們需要使用brew install librdkafka
安裝它,因為安裝指令碼使用brew --prefix
來確定正確的位置。
儲存庫的根目錄包含乙個makefile
,其中包含用於開發的有用命令:
整合測試要求redis
和kafka
在其預設配置中執行。 獲取所有必需服務的最便捷方式是通過sentry devservices
,這需要最新的sentry
開發環境。
重建和執行relay
的最簡單方法是使用cargo
。根據配置,您可能需要執行sentry
的本地例項。
# 第一次初始化 relay
cargo run --all-features -- config init
# 重建並執行所有功能
cargo run --all-features -- run
標準構建命令也可用作make
目標。請注意,發布版本仍會生成除錯資訊。
# 在除錯模式下不進行優化構建。
make build
# 使用發布優化和除錯資訊進行構建。
make release
為了在進行一些更改後快速驗證relay
是否編譯,您還可以使用cargo check
:
cargo check --all --all-features
預設情況下,relay
編譯時不使用 processing 模式。 這是用於作為**執行的中繼的配置。有兩個可選功能:
要啟用功能,請將其傳遞給cargo
呼叫。例如,要在啟用了processing
功能的情況下跨所有workspace crates
執行測試,請執行:
cargo run --features=processing
測試套件包括單元測試、整合測試套件和python
包的單獨測試套件。單元測試是作為rust crates
的一部分實現的,可以通過以下方式執行:
# 測試預設功能
make test-rust
# 為所有功能執行 rust 測試
make test-rust-all
整合測試套件需要python
。預設情況下,整合測試套件將建立乙個virtualenv
,構建啟用處理的relay
二進位制檔案,並執行一組整合測試:
# 建立乙個新的 virtualenv,構建 relay 並執行整合測試
make test-integration
# 手動構建和執行單個測試
make build
.venv/bin/pytest tests/integration -k
我們使用來自最新穩定通道的rustfmt
和clippy
進行**格式化和linting
。 要確保正確設定這些工具並使用正確的配置執行,請使用以下make
目標:
# 格式化整個**庫
make format
# 在整個**庫上執行 clippy
make lint
潛在地,還需要將新功能新增到python
包中。這首先需要在c abi
中公開新功能。 為此,請參閱 relay c-abi readme。
我們強烈建議在virtual
environment中開發和測試python
包。更新和測試abi
後,確保virtualenv
處於活動狀態並安裝構建原生庫的包。有兩種安裝方法:
# 安裝發布版本,推薦:
pip install --editable ./py
# 安裝除錯版本,安裝速度更快,但執行時慢得多:
relay_debug=1 pip install --editable ./py
對於測試,我們使用無處不在的pytest
。 同樣,確保您的virtualenv
處於活動狀態並且已安裝最新版本的原生庫。然後,執行:
# 建立乙個新的 virtualenv,安裝發布版本並執行測試
make test-python
# 手動執行單個測試
.venv/bin/pytest py/tests -k
cargo install systemfd cargo-watch
make devserver
該儲存庫包含用於開發目的的ssl-certificate
+private key
。它有兩種格式:一種是 (.pem
,.cert
) 對,一種是.pfx
(pkcs #12
) 檔案。
密碼,.pfx
檔案是password
。
要使用現有的sentry devserver
、self-hosted sentry
安裝或sentry saas
開發relay
,請將.relay/config.yml
中的upstream
配置為sentry server
的url
。 例如,在本地開發中將relay.upstream
設定為http://localhost:8000/
。
要使用本地development sentry
測試processing
模式,請使用以下配置:
relay:
# 指向您的 sentry devserver url:
# 監聽 3000 以外的埠:
port: 3001
logging:
# 啟用完整的日誌記錄和回溯:
level: trace
enable_backtraces: true
limits:
# 在 ^c 上加速 shutdown
shutdown_timeout: 0
processing:
# 啟用儲存規範化的 processing 模式並將資料發布到 kafka:
enabled: true
kafka_config:
- -
redis: "redis:"
請注意,sentry devserver
還在processing
模式下在埠3000
上以類似配置啟動relay
。 該relay
不會干擾您的開發構建。為確保sdk
傳送到您的開發例項,請更新dsn
中的埠:
http://@localhost:3001/
我們使用 craft 來發布新版本。有兩個單獨的專案要發布:
日曆化版本
語義版本控制
對於暴露給 python package 的更改,請在py/changelog.md
中新增乙個條目。這包括但不限於事件規範化
、pii 清理
和協議
。對於 relay server 的更改,請在changelog.md
的以下標題下新增乙個條目:
features
: 用於新的使用者可見功能。
bug fixes
: 用於使用者可見的錯誤修復。
internal
: 用於內部操作中的功能和錯誤修復,尤其是processing
模式。
- $. ($)
如果以上都不適用,您可以通過在pr
描述中新增#skip-changelog
來選擇退出。 postek二次開發 POSTEK二次開發介面
例項簡介 例項截圖 核心 using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using ...
mcms二次開發 YzmCMS二次開發手冊
摘要 yzmcms是採用mvc設計模式開發,基於模組和操作的方式進行訪問,採用單一入口模式進行專案部署和訪問,無論訪問任何乙個模組或者功能,只有一.yzmcms是採用mvc設計模式開發,基於模組和操作的方式進行訪問,採用單一入口模式進行專案部署和訪問,無論訪問任何乙個模組或者功能,只有乙個統一的入口...
mcms二次開發 YzmCMS二次開發手冊
yzmcms是採用mvc設計模式開發,基於模組和操作的方式進行訪問,採用單一入口模式進行專案部署和訪問,無論訪問任何乙個模組或者功能,只有乙個統一的入口。一 基本目錄結構.根目錄 cache 快取目錄 必須可寫入 common 全站公共目錄 必須可寫入 uploads 預設上傳目錄 必須可寫入 yz...