1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-28 16:20:57 -05:00

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>
This commit is contained in:
Felipe Baltor 2024-05-23 08:59:11 -03:00 committed by GitHub
parent fa27350977
commit fa1ba256d2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 15 additions and 73 deletions

View file

@ -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"

View file

@ -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,

View file

@ -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 =

View file

@ -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())),
}
}

View file

@ -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;

View file

@ -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()
}

View file

@ -2,7 +2,6 @@
mod interface;
pub mod local;
mod time;
use std::borrow::Cow;
use std::cell::RefCell;

View file

@ -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());

View file

@ -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()
}

View file

@ -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

View file

@ -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 =

View file

@ -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()
}

View file

@ -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 }

View file

@ -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(),