summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Baltor <fbaltor@gmail.com>2024-05-23 08:59:11 -0300
committerGitHub <noreply@github.com>2024-05-23 13:59:11 +0200
commitfa1ba256d20236042455abb31a92d2a1d27ee58f (patch)
treecd81e32852e4762f38fffb29ce462f09eab0f0e9
parentfa273509771c01d603d403002481bc1d01e4dd8b (diff)
refactor: remove custom `utc_now` in favor of `chrono::Utc:now` feature (#23888)
This PR removes the use of the custom `utc_now` function in favor of the `chrono` implementation. It resolves #22864. --------- Co-authored-by: Bartek IwaƄczuk <biwanczuk@gmail.com>
-rw-r--r--cli/Cargo.toml2
-rw-r--r--cli/bench/main.rs5
-rw-r--r--cli/tools/coverage/reporter.rs2
-rw-r--r--cli/tools/upgrade.rs5
-rw-r--r--cli/util/mod.rs1
-rw-r--r--cli/util/time.rs19
-rw-r--r--ext/cron/lib.rs1
-rw-r--r--ext/cron/local.rs10
-rw-r--r--ext/cron/time.rs15
-rw-r--r--ext/kv/Cargo.toml2
-rw-r--r--ext/kv/lib.rs4
-rw-r--r--ext/kv/time.rs15
-rw-r--r--tests/Cargo.toml2
-rw-r--r--tests/integration/jupyter_tests.rs5
14 files changed, 15 insertions, 73 deletions
diff --git a/cli/Cargo.toml b/cli/Cargo.toml
index 9c8c4f6bd..c2edd2b60 100644
--- a/cli/Cargo.toml
+++ b/cli/Cargo.toml
@@ -86,7 +86,7 @@ base64.workspace = true
bincode = "=1.3.3"
bytes.workspace = true
cache_control.workspace = true
-chrono.workspace = true
+chrono = { workspace = true, features = ["now"] }
clap = { version = "=4.4.17", features = ["env", "string"] }
clap_complete = "=4.4.7"
clap_complete_fig = "=4.4.2"
diff --git a/cli/bench/main.rs b/cli/bench/main.rs
index 8f0627558..cfbc44e8c 100644
--- a/cli/bench/main.rs
+++ b/cli/bench/main.rs
@@ -17,8 +17,6 @@ use std::process::Stdio;
use std::time::SystemTime;
use test_util::PathRef;
-include!("../util/time.rs");
-
mod http;
mod lsp;
@@ -442,7 +440,8 @@ async fn main() -> Result<()> {
env::set_current_dir(test_util::root_path())?;
let mut new_data = BenchResult {
- created_at: utc_now().to_rfc3339_opts(chrono::SecondsFormat::Secs, true),
+ created_at: chrono::Utc::now()
+ .to_rfc3339_opts(chrono::SecondsFormat::Secs, true),
sha1: test_util::run_collect(
&["git", "rev-parse", "HEAD"],
None,
diff --git a/cli/tools/coverage/reporter.rs b/cli/tools/coverage/reporter.rs
index f359755a9..4bb72b264 100644
--- a/cli/tools/coverage/reporter.rs
+++ b/cli/tools/coverage/reporter.rs
@@ -399,7 +399,7 @@ impl CoverageReporter for HtmlCoverageReporter {
fn done(&mut self, coverage_root: &Path) {
let summary = self.collect_summary(&self.file_reports);
- let now = crate::util::time::utc_now().to_rfc2822();
+ let now = chrono::Utc::now().to_rfc2822();
for (node, stats) in &summary {
let report_path =
diff --git a/cli/tools/upgrade.rs b/cli/tools/upgrade.rs
index 073ebdc1c..8379c6fd2 100644
--- a/cli/tools/upgrade.rs
+++ b/cli/tools/upgrade.rs
@@ -10,7 +10,6 @@ use crate::http_util::HttpClient;
use crate::standalone::binary::unpack_into_dir;
use crate::util::progress_bar::ProgressBar;
use crate::util::progress_bar::ProgressBarStyle;
-use crate::util::time;
use crate::version;
use async_trait::async_trait;
@@ -60,7 +59,7 @@ impl RealUpdateCheckerEnvironment {
Self {
cache_file_path,
// cache the current time
- current_time: time::utc_now(),
+ current_time: chrono::Utc::now(),
}
}
}
@@ -785,7 +784,7 @@ mod test {
current_version: Default::default(),
is_canary: Default::default(),
latest_version: Rc::new(RefCell::new(Ok("".to_string()))),
- time: Rc::new(RefCell::new(crate::util::time::utc_now())),
+ time: Rc::new(RefCell::new(chrono::Utc::now())),
}
}
diff --git a/cli/util/mod.rs b/cli/util/mod.rs
index c8155dc51..89df7bb98 100644
--- a/cli/util/mod.rs
+++ b/cli/util/mod.rs
@@ -15,7 +15,6 @@ pub mod progress_bar;
pub mod result;
pub mod sync;
pub mod text_encoding;
-pub mod time;
pub mod unix;
pub mod v8;
pub mod windows;
diff --git a/cli/util/time.rs b/cli/util/time.rs
deleted file mode 100644
index 47306c126..000000000
--- a/cli/util/time.rs
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
-
-/// Identical to chrono::Utc::now() but without the system "clock"
-/// feature flag.
-///
-/// The "clock" feature flag pulls in the "iana-time-zone" crate
-/// which links to macOS's "CoreFoundation" framework which increases
-/// startup time for the CLI.
-///
-/// You can simply include this file in your project using
-/// `include!("path/to/cli/util/time.rs"))` and use it
-/// as a drop-in replacement for chrono::Utc::now().
-pub fn utc_now() -> chrono::DateTime<chrono::Utc> {
- let now = std::time::SystemTime::now()
- .duration_since(std::time::UNIX_EPOCH)
- .expect("system time before Unix epoch");
- chrono::DateTime::from_timestamp(now.as_secs() as i64, now.subsec_nanos())
- .unwrap()
-}
diff --git a/ext/cron/lib.rs b/ext/cron/lib.rs
index 4f4d0e05c..a0f1c44e1 100644
--- a/ext/cron/lib.rs
+++ b/ext/cron/lib.rs
@@ -2,7 +2,6 @@
mod interface;
pub mod local;
-mod time;
use std::borrow::Cow;
use std::cell::RefCell;
diff --git a/ext/cron/local.rs b/ext/cron/local.rs
index 945df0796..dd60e750a 100644
--- a/ext/cron/local.rs
+++ b/ext/cron/local.rs
@@ -91,7 +91,7 @@ impl LocalCronHandler {
.copied();
let sleep_fut = if let Some(earliest_deadline) = earliest_deadline {
- let now = crate::time::utc_now().timestamp_millis() as u64;
+ let now = chrono::Utc::now().timestamp_millis() as u64;
if let Some(delta) = earliest_deadline.checked_sub(now) {
tokio::time::sleep(std::time::Duration::from_millis(delta)).boxed()
} else {
@@ -121,7 +121,7 @@ impl LocalCronHandler {
{
let backoff_ms =
backoff_schedule[cron.current_execution_retries as usize];
- let now = crate::time::utc_now().timestamp_millis() as u64;
+ let now = chrono::Utc::now().timestamp_millis() as u64;
cron.current_execution_retries += 1;
now + backoff_ms as u64
} else {
@@ -155,7 +155,7 @@ impl RuntimeState {
fn get_ready_crons(
&mut self,
) -> Result<Vec<(String, WeakSender<()>)>, AnyError> {
- let now = crate::time::utc_now().timestamp_millis() as u64;
+ let now = chrono::Utc::now().timestamp_millis() as u64;
let ready = {
let to_remove = self
@@ -301,7 +301,7 @@ impl CronHandle for CronExecutionHandle {
}
fn compute_next_deadline(cron_expression: &str) -> Result<u64, AnyError> {
- let now = crate::time::utc_now();
+ let now = chrono::Utc::now();
if let Ok(test_schedule) = env::var("DENO_CRON_TEST_SCHEDULE_OFFSET") {
if let Ok(offset) = test_schedule.parse::<u64>() {
@@ -334,7 +334,7 @@ mod tests {
#[test]
fn test_compute_next_deadline() {
- let now = crate::time::utc_now().timestamp_millis() as u64;
+ let now = chrono::Utc::now().timestamp_millis() as u64;
assert!(compute_next_deadline("*/1 * * * *").unwrap() > now);
assert!(compute_next_deadline("* * * * *").unwrap() > now);
assert!(compute_next_deadline("bogus").is_err());
diff --git a/ext/cron/time.rs b/ext/cron/time.rs
deleted file mode 100644
index 3a5565332..000000000
--- a/ext/cron/time.rs
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
-
-/// Identical to chrono::Utc::now() but without the system "clock"
-/// feature flag.
-///
-/// The "clock" feature flag pulls in the "iana-time-zone" crate
-/// which links to macOS's "CoreFoundation" framework which increases
-/// startup time for the CLI.
-pub fn utc_now() -> chrono::DateTime<chrono::Utc> {
- let now = std::time::SystemTime::now()
- .duration_since(std::time::UNIX_EPOCH)
- .expect("system time before Unix epoch");
- chrono::DateTime::from_timestamp(now.as_secs() as i64, now.subsec_nanos())
- .unwrap()
-}
diff --git a/ext/kv/Cargo.toml b/ext/kv/Cargo.toml
index 12a0e2c90..7349d5841 100644
--- a/ext/kv/Cargo.toml
+++ b/ext/kv/Cargo.toml
@@ -17,7 +17,7 @@ path = "lib.rs"
anyhow.workspace = true
async-trait.workspace = true
base64.workspace = true
-chrono.workspace = true
+chrono = { workspace = true, features = ["now"] }
deno_core.workspace = true
deno_fetch.workspace = true
deno_node.workspace = true
diff --git a/ext/kv/lib.rs b/ext/kv/lib.rs
index 72e1cab30..285614389 100644
--- a/ext/kv/lib.rs
+++ b/ext/kv/lib.rs
@@ -4,7 +4,6 @@ pub mod dynamic;
mod interface;
pub mod remote;
pub mod sqlite;
-mod time;
use std::borrow::Cow;
use std::cell::RefCell;
@@ -56,7 +55,6 @@ use denokv_proto::WatchStream;
use log::debug;
use serde::Deserialize;
use serde::Serialize;
-use time::utc_now;
pub use crate::interface::*;
@@ -772,7 +770,7 @@ async fn op_kv_atomic_write<DBH>(
where
DBH: DatabaseHandler + 'static,
{
- let current_timestamp = utc_now();
+ let current_timestamp = chrono::Utc::now();
let db = {
let state = state.borrow();
let resource =
diff --git a/ext/kv/time.rs b/ext/kv/time.rs
deleted file mode 100644
index 3a5565332..000000000
--- a/ext/kv/time.rs
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
-
-/// Identical to chrono::Utc::now() but without the system "clock"
-/// feature flag.
-///
-/// The "clock" feature flag pulls in the "iana-time-zone" crate
-/// which links to macOS's "CoreFoundation" framework which increases
-/// startup time for the CLI.
-pub fn utc_now() -> chrono::DateTime<chrono::Utc> {
- let now = std::time::SystemTime::now()
- .duration_since(std::time::UNIX_EPOCH)
- .expect("system time before Unix epoch");
- chrono::DateTime::from_timestamp(now.as_secs() as i64, now.subsec_nanos())
- .unwrap()
-}
diff --git a/tests/Cargo.toml b/tests/Cargo.toml
index af220aae7..4b8db9564 100644
--- a/tests/Cargo.toml
+++ b/tests/Cargo.toml
@@ -33,7 +33,7 @@ required-features = ["run"]
[dev-dependencies]
bytes.workspace = true
-chrono.workspace = true
+chrono = { workspace = true, features = ["now"] }
deno_ast.workspace = true
deno_bench_util.workspace = true
deno_cache_dir = { workspace = true }
diff --git a/tests/integration/jupyter_tests.rs b/tests/integration/jupyter_tests.rs
index c7b2712e8..e0733d5a3 100644
--- a/tests/integration/jupyter_tests.rs
+++ b/tests/integration/jupyter_tests.rs
@@ -25,9 +25,6 @@ use zeromq::SocketRecv;
use zeromq::SocketSend;
use zeromq::ZmqMessage;
-// for the `utc_now` function
-include!("../../cli/util/time.rs");
-
/// Jupyter connection file format
#[derive(Serialize)]
struct ConnectionSpec {
@@ -138,7 +135,7 @@ impl Default for MsgHeader {
Self {
msg_id: Uuid::new_v4(),
session: Uuid::new_v4(),
- date: utc_now(),
+ date: chrono::Utc::now(),
username: "test".into(),
msg_type: "kernel_info_request".into(),
version: "5.3".into(),