# cleanup

Published articles for cleanup.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Toolbox App 3.8: Improves IDE Update Handling on macOS and Fixes Keyboard Navigation

DevFeed: [Toolbox App 3.8: Improves IDE Update Handling on macOS and Fixes Keyboard Navigation](<https://devfeed.tech/articles/toolbox-app-3-8-improves-ide-update-handling-on-macos-and-fixes-keyboard-navigation-21587.md>)

Original publisher: [Read original article](<https://blog.jetbrains.com/toolbox-app/2026/09/toolbox-app-3-8-improves-ide-update-handling-on-macos-and-fixes-keyboard-navigation/>)

Author: Ivan Kuzmin

Published: 2026-09-14T16:05:56Z

Content type: release

Language: en

Sources: [The JetBrains Blog](<https://devfeed.tech/sources/the-jetbrains-blog.md>)

Topics: [App](<https://devfeed.tech/topics/app.md>), [ide](<https://devfeed.tech/topics/ide.md>), [macOS](<https://devfeed.tech/topics/macos.md>)

Tags: [cleanup](<https://devfeed.tech/tags/cleanup.md>), [ide](<https://devfeed.tech/tags/ide.md>), [jetbrains-toolbox](<https://devfeed.tech/tags/jetbrains-toolbox.md>), [macos](<https://devfeed.tech/tags/macos.md>), [navigation](<https://devfeed.tech/tags/navigation.md>), [shortcuts](<https://devfeed.tech/tags/shortcuts.md>), [toolbox-app](<https://devfeed.tech/tags/toolbox-app.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

Toolbox App 3.8 improves IDE update handling on macOS, restores keyboard navigation in project and tool lists, and adds progress reporting and safeguards for cleanup of leftover IDE directories.

### Source excerpt

Version 3.8 of the Toolbox App restores keyboard navigation in project and tool lists. On macOS, manual IDE updates stay available even when the system reports the installation directory as protected. IDE updates remain available on macOS macOS was sometimes incorrectly reporting an IDE installation directory as non-writable, causing the Toolbox App to needlessly disable [...]

## Using coding agents on a migration: Three practices that mattered

DevFeed: [Using coding agents on a migration: Three practices that mattered](<https://devfeed.tech/articles/using-coding-agents-on-a-migration-three-practices-that-mattered-36090.md>)

Original publisher: [Read original article](<https://temporal.io/blog/using-coding-agents-on-a-migration-three-practices-that-mattered>)

Author: Chandler Ortman

Published: 2026-09-02T00:00:00Z

Content type: article

Language: en

Sources: [Temporal Blog](<https://devfeed.tech/sources/temporal-blog.md>)

Topics: [migration](<https://devfeed.tech/topics/migration.md>), [clickhouse](<https://devfeed.tech/topics/clickhouse.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>), [coding](<https://devfeed.tech/topics/coding.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Environment Variables](<https://devfeed.tech/topics/environment-variables.md>)

Tags: [cleanup](<https://devfeed.tech/tags/cleanup.md>), [clickhouse](<https://devfeed.tech/tags/clickhouse.md>), [coding-agents](<https://devfeed.tech/tags/coding-agents.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [environment-variables](<https://devfeed.tech/tags/environment-variables.md>), [migration](<https://devfeed.tech/tags/migration.md>), [prompt](<https://devfeed.tech/tags/prompt.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [temporal-voices](<https://devfeed.tech/tags/temporal-voices.md>)

### AI overview

The article examines coding agents used during a migration of Temporal Cloud usage and billing data to ClickHouse. It finds that the agents were most useful for cleanup and removal work, with durable cleanup instructions and exhaustive searches helping make that work practical.

### Source excerpt

Three lessons from using coding agents during a ClickHouse migration, from cleanup automation to writing durable instructions that stay useful over time.

## How to Automate Artifact Cleanup in Harness Artifact Registry Without Breaking Production

DevFeed: [How to Automate Artifact Cleanup in Harness Artifact Registry Without Breaking Production](<https://devfeed.tech/articles/automate-artifact-cleanup-in-harness-registry-13416.md>)

Original publisher: [Read original article](<https://www.harness.io/blog/how-to-automate-artifact-cleanup-in-harness-artifact-registry-without-breaking-production>)

Author: Shibam Dhar

Published: 2026-08-04T00:00:00Z

Content type: tutorial

Language: en

Sources: [Harness Blog](<https://devfeed.tech/sources/harness-blog.md>)

Topics: [container images](<https://devfeed.tech/topics/container-images.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [npm](<https://devfeed.tech/topics/npm.md>), [Helm charts](<https://devfeed.tech/topics/helm-charts.md>), [Python](<https://devfeed.tech/topics/python.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [sdlc](<https://devfeed.tech/topics/sdlc.md>), [Microservice](<https://devfeed.tech/topics/microservice.md>)

Tags: [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [cleanup](<https://devfeed.tech/tags/cleanup.md>), [container-images](<https://devfeed.tech/tags/container-images.md>), [cost](<https://devfeed.tech/tags/cost.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [docker](<https://devfeed.tech/tags/docker.md>), [helm](<https://devfeed.tech/tags/helm.md>), [npm](<https://devfeed.tech/tags/npm.md>), [python](<https://devfeed.tech/tags/python.md>), [sdlc](<https://devfeed.tech/tags/sdlc.md>)

### AI overview

This hands-on walkthrough explains how Harness Artifact Registry lifecycle rules can automate cleanup across Docker, npm, Maven, Python, and Helm repositories while reducing the risk of deleting artifacts still used in production. It describes dry-run previews, governance tiers, recovery, and the limits of age-, count-, and tag-based rules.

### Source excerpt

A hands-on walkthrough of Lifecycle Rules across Docker, npm, Maven, Python, and Helm. Includes dry-run preview, three-tier governance, and one-click recovery. | Blog

## Batch Jobs for SparkClient: Submitting and Managing Spark Workloads from Python

DevFeed: [Batch Jobs for SparkClient: Submitting and Managing Spark Workloads from Python](<https://devfeed.tech/articles/batch-jobs-for-sparkclient-submitting-and-managing-spark-workloads-from-python-17614.md>)

Original publisher: [Read original article](<https://blog.kubeflow.org/sdk/spark-batch-jobs/>)

Author: Sameer Yadav

Published: 2026-07-25T05:00:00Z

Content type: tutorial

Language: en

Sources: [Kubeflow](<https://devfeed.tech/sources/kubeflow.md>)

Topics: [Apache Spark](<https://devfeed.tech/topics/spark.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [Python](<https://devfeed.tech/topics/python.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>)

Tags: [batch](<https://devfeed.tech/tags/batch.md>), [cleanup](<https://devfeed.tech/tags/cleanup.md>), [gsoc](<https://devfeed.tech/tags/gsoc.md>), [jobs](<https://devfeed.tech/tags/jobs.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [logs](<https://devfeed.tech/tags/logs.md>), [pipelines](<https://devfeed.tech/tags/pipelines.md>), [python](<https://devfeed.tech/tags/python.md>), [scheduled](<https://devfeed.tech/tags/scheduled.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [spark](<https://devfeed.tech/tags/spark.md>)

### AI overview

This tutorial explains how the Kubeflow SDK's SparkClient supports submitting and managing batch Spark workloads on Kubernetes from Python. It covers script- and function-based jobs, lifecycle operations, log retrieval, cleanup, and the implementation's current boundaries.

### Source excerpt

How the SparkClient SDK's new batch job APIs work under the hood -- submit_job(), FileJob/FuncJob, the lifecycle APIs, and log retrieval.

## Feature Flag Security in your CI/CD Pipeline

DevFeed: [Feature Flag Security in your CI/CD Pipeline](<https://devfeed.tech/articles/feature-flag-security-in-your-ci-cd-pipeline-13396.md>)

Original publisher: [Read original article](<https://www.harness.io/blog/feature-flag-security-in-your-ci-cd-pipeline>)

Author: Lena Sano

Published: 2026-07-22T00:00:00Z

Content type: article

Language: en

Sources: [Harness Blog](<https://devfeed.tech/sources/harness-blog.md>)

Topics: [feature flags](<https://devfeed.tech/topics/feature-flags.md>), [Security](<https://devfeed.tech/topics/security.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>)

Tags: [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [cleanup](<https://devfeed.tech/tags/cleanup.md>), [feature](<https://devfeed.tech/tags/feature.md>), [feature-flagging](<https://devfeed.tech/tags/feature-flagging.md>), [feature-flags](<https://devfeed.tech/tags/feature-flags.md>), [governance](<https://devfeed.tech/tags/governance.md>), [lifecycle](<https://devfeed.tech/tags/lifecycle.md>), [local](<https://devfeed.tech/tags/local.md>), [pii](<https://devfeed.tech/tags/pii.md>), [privacy](<https://devfeed.tech/tags/privacy.md>), [remote](<https://devfeed.tech/tags/remote.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

This article explains security practices for Harness Feature Management and Experimentation. It covers local versus remote feature-flag evaluation, privacy considerations for sensitive user data, governance, automated cleanup, and an AI agent for feature-flag lifecycle management.

### Source excerpt

Secure feature flags with Harness FME using local or remote evaluation, automated cleanup, governance, and AI-powered lifecycle management. | Blog

## Why I needed Durable Execution to read a toy manual

DevFeed: [Why I needed Durable Execution to read a toy manual](<https://devfeed.tech/articles/why-i-needed-durable-execution-to-read-a-toy-manual-36107.md>)

Original publisher: [Read original article](<https://temporal.io/blog/why-i-needed-durable-execution-to-read-a-toy-manual>)

Author: Shy Ruparel

Published: 2026-07-13T00:00:00Z

Content type: opinion

Language: en

Sources: [Temporal Blog](<https://devfeed.tech/sources/temporal-blog.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Software](<https://devfeed.tech/topics/software.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [cleanup](<https://devfeed.tech/tags/cleanup.md>), [japanese](<https://devfeed.tech/tags/japanese.md>), [ocr](<https://devfeed.tech/tags/ocr.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [retries](<https://devfeed.tech/tags/retries.md>), [temporal-voices](<https://devfeed.tech/tags/temporal-voices.md>), [translation](<https://devfeed.tech/tags/translation.md>)

### AI overview

Shy Ruparel describes building Toku Solutions, an AI pipeline that translates Japanese collectible toy manuals into editable static sites. Durable Execution handles OCR, retries, and cleanup so processing does not have to restart from the beginning.

### Source excerpt

Shy Ruparel built an AI pipeline to translate Japanese toy manuals. Durable Execution keeps OCR, retries, and cleanup from starting over.

## Tracking Down Orphaned Objects in ClickHouse Clusters and Improving Cleanup and Recovery

DevFeed: [Tracking Down Orphaned Objects in ClickHouse Clusters and Improving Cleanup and Recovery](<https://devfeed.tech/articles/hunting-orphan-objects-45-off-our-clickhouse-storage-bill-and-a-near-data-loss-incident-18527.md>)

Original publisher: [Read original article](<https://www.tinybird.co/blog/how-we-deal-with-cloud-orphan-objects>)

Author: Irene Martínez

Published: 2026-05-19T00:00:00Z

Content type: article

Language: en

Sources: [Tinybird](<https://devfeed.tech/sources/tinybird.md>)

Topics: [clickhouse](<https://devfeed.tech/topics/clickhouse.md>), [data](<https://devfeed.tech/topics/data.md>), [incident](<https://devfeed.tech/topics/incident.md>), [cloud-infrastructure](<https://devfeed.tech/topics/cloud-infrastructure.md>)

Tags: [cleanup](<https://devfeed.tech/tags/cleanup.md>), [clickhouse](<https://devfeed.tech/tags/clickhouse.md>), [clusters](<https://devfeed.tech/tags/clusters.md>), [data](<https://devfeed.tech/tags/data.md>), [engineering-excellence](<https://devfeed.tech/tags/engineering-excellence.md>), [incident](<https://devfeed.tech/tags/incident.md>), [recovery](<https://devfeed.tech/tags/recovery.md>), [storage](<https://devfeed.tech/tags/storage.md>)

### AI overview

This article describes how the team tracked down orphaned objects in its ClickHouse clusters, reduced monthly storage costs, and improved cleanup and recovery procedures after a near data-loss incident.

### Source excerpt

How we tracked down petabytes of orphaned objects in our ClickHouse clusters, recovered tens of thousands of dollars in monthly storage costs, and hardened our cleanup and recovery procedures after almost losing data along the way.

## Temporal Sandbox Orchestration Harness: The missing layer for running agents

DevFeed: [Temporal Sandbox Orchestration Harness: The missing layer for running agents](<https://devfeed.tech/articles/temporal-sandbox-orchestration-harness-the-missing-layer-for-running-agents-36031.md>)

Original publisher: [Read original article](<https://temporal.io/blog/temporal-sandbox-orchestration-harness-the-missing-layer-for-running-agents>)

Author: Stefan Richter

Published: 2026-05-07T00:00:00Z

Content type: article

Language: en

Sources: [Temporal Blog](<https://devfeed.tech/sources/temporal-blog.md>)

Topics: [Orchestration](<https://devfeed.tech/topics/orchestration.md>), [agentic workflows](<https://devfeed.tech/topics/agentic-workflows.md>), [Persistence](<https://devfeed.tech/topics/persistence.md>), [Provisioning](<https://devfeed.tech/topics/provisioning.md>)

Tags: [agentic-workflows](<https://devfeed.tech/tags/agentic-workflows.md>), [agents](<https://devfeed.tech/tags/agents.md>), [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [cleanup](<https://devfeed.tech/tags/cleanup.md>), [durability](<https://devfeed.tech/tags/durability.md>), [execution](<https://devfeed.tech/tags/execution.md>), [files](<https://devfeed.tech/tags/files.md>), [harness](<https://devfeed.tech/tags/harness.md>), [isolation](<https://devfeed.tech/tags/isolation.md>), [network](<https://devfeed.tech/tags/network.md>), [orchestration](<https://devfeed.tech/tags/orchestration.md>), [persistence](<https://devfeed.tech/tags/persistence.md>), [process](<https://devfeed.tech/tags/process.md>), [product-news](<https://devfeed.tech/tags/product-news.md>), [provisioning](<https://devfeed.tech/tags/provisioning.md>), [sandbox](<https://devfeed.tech/tags/sandbox.md>), [temporal](<https://devfeed.tech/tags/temporal.md>)

### AI overview

Temporal introduces reference materials and Code Exchange samples for orchestrating secure, isolated, temporary sandbox compute environments within Temporal Workflows used by AI agents. The materials address interfaces, provisioning, persistence, and cleanup.

### Source excerpt

Standardize how AI agents in Temporal Workflows orchestrate sandbox compute. New Code Exchange samples cover provisioning, persistence, and cleanup.

## The best way to clean up test data with Spring and Hibernate

DevFeed: [The best way to clean up test data with Spring and Hibernate](<https://devfeed.tech/articles/the-best-way-to-clean-up-test-data-with-spring-and-hibernate-21982.md>)

Original publisher: [Read original article](<https://vladmihalcea.com/clean-up-test-data-spring/>)

Author: vladmihalcea

Published: 2025-11-11T08:05:24Z

Content type: tutorial

Language: en

Sources: [Vlad Mihalcea](<https://devfeed.tech/sources/vlad-mihalcea.md>)

Topics: [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Java](<https://devfeed.tech/topics/java.md>), [Spring Framework](<https://devfeed.tech/topics/spring-framework.md>)

Tags: [cleanup](<https://devfeed.tech/tags/cleanup.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [java](<https://devfeed.tech/tags/java.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [schema](<https://devfeed.tech/tags/schema.md>), [spring](<https://devfeed.tech/tags/spring.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>), [test-data](<https://devfeed.tech/tags/test-data.md>), [testing](<https://devfeed.tech/tags/testing.md>), [truncatemappedobjects](<https://devfeed.tech/tags/truncatemappedobjects.md>)

### AI overview

This tutorial examines how to clean up test data in Spring and Hibernate integration tests. It argues that relying on @DataJpaTest for automatic transaction rollback is not always appropriate and discusses limitations of its SQL logging, including its inability to show bind parameter values or indicate whether batching is used.

### Source excerpt

Introduction In this article, I'm going to show you the best way to clean up test data when using Spring and Hibernate. While it's very common to use the @DataJpaTest annotation when implementing integration tests, in this blog post, you will see why you are better off avoiding using this annotation. Why I don't use @DataJpaTest As explained by the manual, Spring Boot provides the @DataJpaTest annotation for Spring Data JPA integration testing. Once the @DataJpaTest annotation is added to an integration test, Spring Boot will make the following changes to the... Read More The post The best way to clean up test data with Spring and Hibernate appeared first on Vlad Mihalcea.

## Simplifying Resource Management in mssql-python through Context Manager

DevFeed: [Simplifying Resource Management in mssql-python through Context Manager](<https://devfeed.tech/articles/simplifying-resource-management-in-mssql-python-through-context-manager-20355.md>)

Original publisher: [Read original article](<https://devblogs.microsoft.com/python/simplifying-resource-management-in-mssql-python-through-context-manager/>)

Author: Jahnvi Thakkar

Published: 2025-09-26T09:49:51Z

Content type: tutorial

Language: en

Sources: [Microsoft Python Engineering](<https://devfeed.tech/sources/microsoft-python-engineering.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [sql-server](<https://devfeed.tech/topics/sql-server.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Exception](<https://devfeed.tech/topics/exception.md>)

Tags: [azure](<https://devfeed.tech/tags/azure.md>), [azure-sql](<https://devfeed.tech/tags/azure-sql.md>), [cleanup](<https://devfeed.tech/tags/cleanup.md>), [client-driver](<https://devfeed.tech/tags/client-driver.md>), [databases](<https://devfeed.tech/tags/databases.md>), [exception-handling](<https://devfeed.tech/tags/exception-handling.md>), [python](<https://devfeed.tech/tags/python.md>), [python-driver-for-azure-sql](<https://devfeed.tech/tags/python-driver-for-azure-sql.md>), [python-driver-for-sql-server](<https://devfeed.tech/tags/python-driver-for-sql-server.md>), [sql-server](<https://devfeed.tech/tags/sql-server.md>), [sql-server-2025](<https://devfeed.tech/tags/sql-server-2025.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

This tutorial explains context manager support in the mssql-python driver for Python applications using SQL Server and Azure SQL. It describes how context managers manage connections and cursors, commit successful transactions, roll back transactions when exceptions occur, and close connections automatically.

### Source excerpt

Reviewed by: Sumit Sarabhai and Gaurav Sharma If you've worked with databases in Python, you know the boilerplate: open a connection, create a cursor, run queries, commit or rollback transactions, close cursors and connection. Forgetting just one cleanup step can lead to resource leaks (open connections) or even inconsistent data. That's where context managers step [...] The post Simplifying Resource Management in mssql-python through Context Manager appeared first on Microsoft for Python Developers Blog.

## Building a Scalable AWS Backup System for S3 Data Warehouses

DevFeed: [Building a Scalable AWS Backup System for S3 Data Warehouses](<https://devfeed.tech/articles/building-a-scalable-data-lake-backup-system-with-aws-22559.md>)

Original publisher: [Read original article](<https://tech.scribd.com/blog/2025/building-scalable-data-warehouse-backup-system.html>)

Author: Oleh Motrunych

Published: 2025-09-22T00:00:00Z

Content type: article

Language: en

Sources: [Scribd Tech](<https://devfeed.tech/sources/scribd-tech.md>)

Topics: [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [AWS Lambda](<https://devfeed.tech/topics/aws-lambda.md>), [parquet](<https://devfeed.tech/topics/parquet.md>), [cloud-infrastructure](<https://devfeed.tech/topics/cloud-infrastructure.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [aws-lambda](<https://devfeed.tech/tags/aws-lambda.md>), [backup](<https://devfeed.tech/tags/backup.md>), [backups](<https://devfeed.tech/tags/backups.md>), [cleanup](<https://devfeed.tech/tags/cleanup.md>), [compute](<https://devfeed.tech/tags/compute.md>), [cost](<https://devfeed.tech/tags/cost.md>), [data](<https://devfeed.tech/tags/data.md>), [data-lake](<https://devfeed.tech/tags/data-lake.md>), [databases](<https://devfeed.tech/tags/databases.md>), [datasets](<https://devfeed.tech/tags/datasets.md>), [deltalake](<https://devfeed.tech/tags/deltalake.md>), [efficiency](<https://devfeed.tech/tags/efficiency.md>), [featured](<https://devfeed.tech/tags/featured.md>), [incremental](<https://devfeed.tech/tags/incremental.md>), [lambda](<https://devfeed.tech/tags/lambda.md>), [lifecycle](<https://devfeed.tech/tags/lifecycle.md>), [parquet](<https://devfeed.tech/tags/parquet.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [reduce](<https://devfeed.tech/tags/reduce.md>), [retention](<https://devfeed.tech/tags/retention.md>), [s3](<https://devfeed.tech/tags/s3.md>), [terraform](<https://devfeed.tech/tags/terraform.md>)

### AI overview

This article describes a monthly backup system for S3 data warehouses that uses incremental copying, S3 Inventory validation, parallel processing, and Glacier retention. It routes smaller workloads to AWS Lambda and larger workloads to ECS Fargate, with lifecycle-based cleanup for eligible files.

### Source excerpt

We designed and implemented a scalable, cost-optimized backup system for S3 data warehouses that runs automatically on a monthly schedule. The system handles petabytes of data across multiple databases and uses a hybrid approach: AWS Lambda for small workloads and ECS Fargate for larger ones. At its core, the pipeline performs incremental backups -- copying only new or changed parquet files while always preserving delta logs -- dramatically reducing costs and runtime compared to full backups. Data is validated through S3 Inventory manifests, processed in parallel, and stored in Glacier for long-term retention. To avoid data loss and reduce storage costs, we also implemented a safe deletion workflow. Files older than 90 days, successfully backed up, and no longer present in the source are tagged for lifecycle-based cleanup instead of being deleted immediately. This approach ensures reliability, efficiency, and safety: backups scale seamlessly from small to massive datasets, compute resources are right-sized, and storage is continuously optimized.

## Purge old Cloudflare Pages deployments

DevFeed: [Purge old Cloudflare Pages deployments](<https://devfeed.tech/articles/purge-old-cloudflare-pages-deployments-27724.md>)

Original publisher: [Read original article](<https://gagor.pro/2025/08/purge-old-cloudflare-pages-deployments/>)

Author: Tom

Published: 2025-08-26T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Cloudflare](<https://devfeed.tech/topics/cloudflare.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Bash](<https://devfeed.tech/topics/bash.md>), [API](<https://devfeed.tech/topics/api.md>), [Script](<https://devfeed.tech/topics/script.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [automated](<https://devfeed.tech/tags/automated.md>), [bash](<https://devfeed.tech/tags/bash.md>), [bash-automation](<https://devfeed.tech/tags/bash-automation.md>), [cleanup](<https://devfeed.tech/tags/cleanup.md>), [cloudflare](<https://devfeed.tech/tags/cloudflare.md>), [cloudflare-api-script](<https://devfeed.tech/tags/cloudflare-api-script.md>), [cloudflare-pages](<https://devfeed.tech/tags/cloudflare-pages.md>), [delete-old-deployments](<https://devfeed.tech/tags/delete-old-deployments.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [devops](<https://devfeed.tech/tags/devops.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [github-actions-cloudflare-cleanup](<https://devfeed.tech/tags/github-actions-cloudflare-cleanup.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [hugo](<https://devfeed.tech/tags/hugo.md>), [purge-deployments-cloudflare](<https://devfeed.tech/tags/purge-deployments-cloudflare.md>), [secrets](<https://devfeed.tech/tags/secrets.md>), [token](<https://devfeed.tech/tags/token.md>)

### AI overview

A Bash script uses the Cloudflare API to paginate through Cloudflare Pages deployments and delete deployments older than 30 days while retaining a configurable number of deployments. The article also outlines the API token, account ID, and GitHub Actions secret setup needed to run the cleanup.

### Source excerpt

Learn how to automatically delete old Cloudflare Pages deployments using a Bash script and the Cloudflare API. Keep your account clean and reduce clutter by removing outdated deployments.

## Good first issues: Q3 2025

DevFeed: [Good first issues: Q3 2025](<https://devfeed.tech/articles/good-first-issues-q3-2025-15430.md>)

Original publisher: [Read original article](<https://wasmcloud.com/blog/2025-08-15-good-first-issues-q3-2025/>)

Author: Eric Gregory

Published: 2025-08-15T00:00:00Z

Content type: article

Language: en

Sources: [wasmCloud Blog](<https://devfeed.tech/sources/wasmcloud-blog.md>)

Topics: [wasm](<https://devfeed.tech/topics/wasm.md>), [Development](<https://devfeed.tech/topics/development.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>)

Tags: [cleanup](<https://devfeed.tech/tags/cleanup.md>), [cli](<https://devfeed.tech/tags/cli.md>), [commands](<https://devfeed.tech/tags/commands.md>), [config](<https://devfeed.tech/tags/config.md>), [contribute](<https://devfeed.tech/tags/contribute.md>), [contributors](<https://devfeed.tech/tags/contributors.md>), [data](<https://devfeed.tech/tags/data.md>), [development](<https://devfeed.tech/tags/development.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [wasmcloud](<https://devfeed.tech/tags/wasmcloud.md>)

### AI overview

A wasmCloud community article highlights good first issues for Q3 2025, covering contributions to the platform, documentation, CLI, and ecosystem libraries. Featured tasks include standardizing image reference fields, adding configuration validation and cleanup commands, and improving Wasm artifact detection after custom builds.

### Source excerpt

Whether you're a veteran wasmCloud user or brand new to the Wasm ecosystem, there are tons of opportunities for folks of all experience levels to contribute.

## Introducing the Community Server Cleanup Report for August 2025

DevFeed: [Introducing the Community Server Cleanup Report for August 2025](<https://devfeed.tech/articles/introducing-the-community-server-cleanup-report-for-august-2025-259.md>)

Original publisher: [Read original article](<https://discord.com/blog/introducing-the-community-server-cleanup-report-for-august-2025>)

Author: Cody Owens

Published: 2025-08-08T00:00:00Z

Content type: release

Language: en

Sources: [Discord Blog](<https://devfeed.tech/sources/discord-blog.md>)

Topics: [Discord](<https://devfeed.tech/topics/discord.md>), [servers](<https://devfeed.tech/topics/servers.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [bug](<https://devfeed.tech/topics/bug.md>), [Markdown](<https://devfeed.tech/topics/markdown.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [android](<https://devfeed.tech/tags/android.md>), [bug](<https://devfeed.tech/tags/bug.md>), [cleanup](<https://devfeed.tech/tags/cleanup.md>), [community](<https://devfeed.tech/tags/community.md>), [discord](<https://devfeed.tech/tags/discord.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [ios](<https://devfeed.tech/tags/ios.md>), [management](<https://devfeed.tech/tags/management.md>), [markdown](<https://devfeed.tech/tags/markdown.md>), [onboarding](<https://devfeed.tech/tags/onboarding.md>), [server](<https://devfeed.tech/tags/server.md>)

### AI overview

Discord's August 2025 Community Server Cleanup Report describes fixes and improvements for server and channel management, community onboarding, Forum channels, and moderator tools.

### Source excerpt

Discord has built a whole new team dedicated to bringing communities more control, more power, and fewer reasons to scream into the void. Check out the first things they've done, including fixes and improvements for server management issues, onboarding, Forum channels, and mod tools.

## How to Audit and Organize CSS z-index Values and Stacking Contexts

DevFeed: [How to Audit and Organize CSS z-index Values and Stacking Contexts](<https://devfeed.tech/articles/spring-cleaning-for-z-indexes-20100.md>)

Original publisher: [Read original article](<https://medium.com/jobteaser-dev-team/spring-cleaning-for-z-indexes-42beba8e526a?source=rss----bd77d16a0035---4>)

Author: Jean-Jacques Royneau

Published: 2024-11-05T10:06:48Z

Content type: tutorial

Language: en

Sources: [JobTeaser](<https://devfeed.tech/sources/jobteaser.md>)

Topics: [CSS](<https://devfeed.tech/topics/css.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [modern web development](<https://devfeed.tech/topics/modern-web-development.md>)

Tags: [audit](<https://devfeed.tech/tags/audit.md>), [bugs](<https://devfeed.tech/tags/bugs.md>), [cleanup](<https://devfeed.tech/tags/cleanup.md>), [css](<https://devfeed.tech/tags/css.md>), [display](<https://devfeed.tech/tags/display.md>), [properties](<https://devfeed.tech/tags/properties.md>), [stacking-context](<https://devfeed.tech/tags/stacking-context.md>), [z-index](<https://devfeed.tech/tags/z-index.md>)

### AI overview

This article describes auditing z-index declarations, centralizing values with CSS custom properties, and reducing unnecessary z-indexes by accounting for stacking contexts and natural DOM order.

### Source excerpt

Managing z-index is a classic challenge for front-end developers. As a project grows, display conflicts and bugs related to z-index can quickly turn into serious headaches. I recently took some time to clean up the z-indexes in one of our projects. In this article, I'll share the approach I used for this cleanup (while also laying the foundation for keeping things manageable in the long run). 1. Analyzing the existing z-indexes The first step was to perform a thorough audit of all the z-index declarations in the project. This gave me an overview of how many z-indexes we had and what values were being used. Here's what I found: - August 2023: 57 declarations with 8 distinct values. - February 2024: 87 declarations with 19 distinct values. This evolution showed me that the use of z-indexes had increased significantly. And there was no reason to believe it would stop. With that in mind, my goal became to centralize and standardize these values. 2. Centralizing z-indexes with CSS Custom Properties I centralized all the z-index values in a single file using CSS custom properties. This allowed me to have an overview of the different layers of elements on the page, helping me get a (slightly) clearer picture of the task ahead. If you'd like to get an idea (or maybe scare yourself a bit), here's what that first file looked like: :root { - z-index-second-basement: -2; - z-index-basement: -1; - z-index-ground: 0; - z-index-floor: 1; - z-index-second-floor: 2; - z-index-third-floor: 3; - z-index-job-ads-secondary-filters--selects: 10; - z-index-job-ads-results-sort: 10; - z-index-job-ads-primary-filters: 20; - z-index-fo-header: 30; - z-index-above-fo-header: 31; - z-index-fo-header--dropdowns: 100; - z-index-career-center--login-modal--autocomplete-list: 99; - z-index-bo-drawer-backdrop: 999; - z-index-bo-drawer: 1000; - z-index-feature-env-switcher: 9999; - z-index-notifications-panel: 10000; - z-index-msw-tools-panel--open-button: 99999; - z-index-msw-tools-panel: 999999; }

## How Does Netlab Deal with Server Reboots?

DevFeed: [How Does Netlab Deal with Server Reboots?](<https://devfeed.tech/articles/how-does-netlab-deal-with-server-reboots-11087.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2024/10/netlab-system-reboots/>)

Published: 2024-10-24T06:15:00Z

Content type: tutorial

Language: en

Sources: [ipSpace.net blog](<https://devfeed.tech/sources/ipspace-net-blog.md>)

Topics: [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Orchestration](<https://devfeed.tech/topics/orchestration.md>), [Vagrant](<https://devfeed.tech/topics/vagrant.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [cleanup](<https://devfeed.tech/tags/cleanup.md>), [cli](<https://devfeed.tech/tags/cli.md>), [config](<https://devfeed.tech/tags/config.md>), [containers](<https://devfeed.tech/tags/containers.md>), [linux](<https://devfeed.tech/tags/linux.md>), [netlab](<https://devfeed.tech/tags/netlab.md>), [orchestration](<https://devfeed.tech/tags/orchestration.md>), [server](<https://devfeed.tech/tags/server.md>), [vagrant](<https://devfeed.tech/tags/vagrant.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>)

### AI overview

The article explains that netlab does not automatically recover labs after server reboots, power failures, or crashes because it runs as a CLI rather than a boot-time service. It describes clearing stale locks, restarting virtual-machine labs with snapshot and no-config options, and the more limited recovery options for containers.

### Source excerpt

Now and then, someone asks how netlab deals with reboots (or power failures or crashes) of the server it's running on. TL&DR: It doesn't. However... netlab is a CLI command that acts as an umbrella orchestration layer for Vagrant and Containerlab. It does not run as a cron job, init script, or service and thus cannot be invoked when a server is booted. Read more ...

## Campground Pull Request

DevFeed: [Campground Pull Request](<https://devfeed.tech/articles/campground-pull-request-25228.md>)

Original publisher: [Read original article](<https://kau.sh/blog/campground-pr/>)

Author: Kaushik Gopal

Published: 2024-07-06T22:52:31Z

Content type: opinion

Language: en

Sources: [Kaushik Gopal's Site](<https://devfeed.tech/sources/kaushik-gopal-s-site.md>)

Topics: [Pull Request](<https://devfeed.tech/topics/pull-request.md>), [Code review](<https://devfeed.tech/topics/code-review.md>), [Code quality](<https://devfeed.tech/topics/code-quality.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [cleanup](<https://devfeed.tech/tags/cleanup.md>), [code](<https://devfeed.tech/tags/code.md>), [code-quality](<https://devfeed.tech/tags/code-quality.md>), [merge](<https://devfeed.tech/tags/merge.md>), [pull-request](<https://devfeed.tech/tags/pull-request.md>), [refactor](<https://devfeed.tech/tags/refactor.md>), [review](<https://devfeed.tech/tags/review.md>), [reviews](<https://devfeed.tech/tags/reviews.md>), [team](<https://devfeed.tech/tags/team.md>)

### AI overview

The article proposes "Campground PRs": separate pull requests for refactoring and clarifying code before implementing a new feature. Because these changes should not alter functionality, they can improve estimates, simplify reviews, and gradually improve codebase quality.

### Source excerpt

Before diving into a new feature, I always tell my team to scout the parts of the codebase that will need to change. As we explore, refactor for clarity. These cleanup changes get their own pull request1 (PR) before we touch the new feature. This PR shouldn't change functionality, just tidy up the existing code. This gives us a few big wins: Better estimates: We can estimate the feature's timeline more accurately now that we have a much better sense of what's about to change. Smoother reviews: Campground PRs are quicker to review, since no functionality has changed. Importantly, you don't clutter your feature PR with refactors or distracting changes -- prompting the ire of code reviewers. Codebase quality: You gradually increase the code quality of your codebase -- especially the parts that won't get touched by your feature PR but could use the love. This is not a new concept , you've probably seen versions of it before: Boy Scout Rule: Leave your codebase cleaner than you found it. Broken Windows: Fix small issues before they proliferate through your code base become big. I haven't found a popular name for this specific concept, so I've started calling them "Campground PRs". Don't just leave the code better after your feature, do it before hand. Got a better name? Let me know! Or merge request (MR), for the Gitlab folks. ↩︎

## Introducing Setup and Teardown tasks

DevFeed: [Introducing Setup and Teardown tasks](<https://devfeed.tech/articles/introducing-setup-and-teardown-tasks-32564.md>)

Original publisher: [Read original article](<https://airflow.apache.org/blog/introducing_setup_teardown/>)

Author: Apache Airflow

Published: 2023-08-18T00:00:00Z

Content type: article

Language: en

Sources: [Apache Airflow Blog](<https://devfeed.tech/sources/apache-airflow-blog.md>)

Topics: [airflow](<https://devfeed.tech/topics/airflow.md>), [Data pipelines](<https://devfeed.tech/topics/data-pipelines.md>), [GPU](<https://devfeed.tech/topics/gpu.md>)

Tags: [airflow](<https://devfeed.tech/tags/airflow.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [cleanup](<https://devfeed.tech/tags/cleanup.md>), [data-pipelines](<https://devfeed.tech/tags/data-pipelines.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [setup](<https://devfeed.tech/tags/setup.md>), [tasks](<https://devfeed.tech/tags/tasks.md>)

### AI overview

This article introduces setup and teardown tasks in Airflow 2.7 for managing infrastructure around work in data pipelines. It explains their dependency semantics, cleanup behavior, DAG run state handling, and behavior within task groups.

### Source excerpt

In data pipelines, commonly we need to create infrastructure resources, like a cluster or GPU nodes in an existing cluster, before doing the actual "work" and delete them after the work is done. Airflow 2.7 adds "setup" and "teardown" tasks to better support this type of pipeline. This blog post aims to highlight the key features so you know what's possible. For full documentation on how to use setup and teardown tasks, see the setup and teardown docs. Why setup and teardown? Before we dig into examples, let me state at high level what setup and teardown bring to the table. More expressive dependencies Before setup and teardown, upstream and downstream relationships could only mean one thing: "this comes before that". With setup and teardown, in effect we can say "this requires that". And what it means in practice is, if you clear your task, and it requires a setup, that setup will be cleared too. And if that setup has a teardown, that will run again as well. Separating the work from the infra Sometimes the part of the dag you care about is not, say, the cleanup task. For example, suppose you have a dag that loads some data and then deletes temp files. As long as the data loads, you want your dag to be marked successful. By default, this is how teardown tasks work; that is, they are ignored when determining dag run state. Simple case A simple example is one setup / teardown pair, and one normal or "work" task. Setups and teardowns are indicated by the up and down arrows, respectively. From that we can see that .create_cluster is a setup task and delete_cluster is a teardown. The link between a setup and a teardown is always dotted to highlight the special relationship. Some things to observe: If create_cluster fails, neither run_query nor delete_cluster will run. If create_cluster succeeds and run_query fails, then delete_cluster will still run. If create_cluster is skipped, run_query and delete_cluster will be skipped By default, if run_query succeeds, and delete_c

## Listen for SIGINT and SIGTERM Events in a ZX Script

DevFeed: [Listen for SIGINT and SIGTERM Events in a ZX Script](<https://devfeed.tech/articles/listen-for-sigint-and-sigterm-events-in-a-zx-script-21823.md>)

Original publisher: [Read original article](<https://www.thepolyglotdeveloper.com/blog/2023/01/listen-sigint-sigterm-events-zx-script/>)

Author: Nic Raboy

Published: 2023-01-06T21:00:00Z

Content type: tutorial

Language: en

Sources: [Nic Raboy](<https://devfeed.tech/sources/nic-raboy.md>)

Topics: [Script](<https://devfeed.tech/topics/script.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>), [Unix](<https://devfeed.tech/topics/unix.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Process](<https://devfeed.tech/topics/process.md>)

Tags: [bash](<https://devfeed.tech/tags/bash.md>), [cleanup](<https://devfeed.tech/tags/cleanup.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [linux](<https://devfeed.tech/tags/linux.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [process](<https://devfeed.tech/tags/process.md>), [script](<https://devfeed.tech/tags/script.md>), [signal](<https://devfeed.tech/tags/signal.md>), [unix](<https://devfeed.tech/tags/unix.md>), [zx](<https://devfeed.tech/tags/zx.md>)

### AI overview

A tutorial on handling SIGINT and SIGTERM events in ZX scripts with JavaScript. It covers prerequisites, a simple long-running script, and graceful shutdown and cleanup logic on Unix-like systems.

### Source excerpt

Have you ever needed to handle signal events within your ZX script? For example, what happens if you need to handle a graceful shutdown of your long-running or infinite-running script? Or what happens... The post Listen for SIGINT and SIGTERM Events in a ZX Script appeared first on The Polyglot Developer.

## How to remove geo-localization/EXIF data from photos

DevFeed: [How to remove geo-localization/EXIF data from photos](<https://devfeed.tech/articles/how-to-remove-geo-localization-exif-data-from-photos-27663.md>)

Original publisher: [Read original article](<https://gagor.pro/2021/03/how-to-remove-geo-localization/exif-data-from-photos/>)

Author: Tom

Published: 2021-03-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [ImageMagick](<https://devfeed.tech/topics/imagemagick.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [bash](<https://devfeed.tech/tags/bash.md>), [bash-image-processing](<https://devfeed.tech/tags/bash-image-processing.md>), [cleanup](<https://devfeed.tech/tags/cleanup.md>), [gps](<https://devfeed.tech/tags/gps.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [imagemagick](<https://devfeed.tech/tags/imagemagick.md>), [imagemagick-exif-removal](<https://devfeed.tech/tags/imagemagick-exif-removal.md>), [linux](<https://devfeed.tech/tags/linux.md>), [linux-photo-privacy](<https://devfeed.tech/tags/linux-photo-privacy.md>), [photo-metadata-removal](<https://devfeed.tech/tags/photo-metadata-removal.md>), [photos](<https://devfeed.tech/tags/photos.md>), [privacy](<https://devfeed.tech/tags/privacy.md>), [remove-exif-data](<https://devfeed.tech/tags/remove-exif-data.md>), [remove-geo-localization](<https://devfeed.tech/tags/remove-geo-localization.md>)

### AI overview

A tutorial on removing GPS and other EXIF metadata from photos with ImageMagick on Linux. It demonstrates checking image metadata before and after cleanup to help protect privacy when sharing images publicly.

### Source excerpt

Learn how to remove geo-localization and EXIF data from photos using ImageMagick on Linux, ensuring privacy before sharing images publicly.

## History of PowerDNS: 2013-2020 (Technology)

DevFeed: [History of PowerDNS: 2013-2020 (Technology)](<https://devfeed.tech/articles/history-of-powerdns-2013-2020-technology-36436.md>)

Original publisher: [Read original article](<https://berthub.eu/articles/posts/history-of-powerdns-2013-2020/>)

Published: 2020-12-21T19:32:58Z

Content type: article

Language: en

Sources: [Bert Hubert's writings](<https://devfeed.tech/sources/bert-hubert-s-writings.md>)

Topics: [Software](<https://devfeed.tech/topics/software.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [domain](<https://devfeed.tech/topics/domain.md>), [DNSSEC](<https://devfeed.tech/topics/dnssec.md>), [ASCII](<https://devfeed.tech/topics/ascii.md>), [Protocol (disambiguation)](<https://devfeed.tech/topics/protocol.md>)

Tags: [ascii](<https://devfeed.tech/tags/ascii.md>), [bugs](<https://devfeed.tech/tags/bugs.md>), [business](<https://devfeed.tech/tags/business.md>), [cleanup](<https://devfeed.tech/tags/cleanup.md>), [cognitive-load](<https://devfeed.tech/tags/cognitive-load.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [dns](<https://devfeed.tech/tags/dns.md>), [dnssec](<https://devfeed.tech/tags/dnssec.md>), [domain](<https://devfeed.tech/tags/domain.md>), [history](<https://devfeed.tech/tags/history.md>), [powerdns](<https://devfeed.tech/tags/powerdns.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [software](<https://devfeed.tech/tags/software.md>), [standards](<https://devfeed.tech/tags/standards.md>), [technology](<https://devfeed.tech/tags/technology.md>)

### AI overview

This article covers the technical development of PowerDNS from 2013 to 2020, including an extensive internal cleanup of mature code. It explains how the cleanup addressed accumulated complexity, bugs, and incorrect treatment of DNS names as ASCII strings, including ordering, case, escaping, and spaces.

### Source excerpt

In this part of the history of PowerDNS, I talk about the technical developments from 2013 to 2020. Over these years many fascinating business & hiring developments also happened, but these are described in a separate post, part 3B of the PowerDNS History. Here are the earlier parts: Part 1, Part 2 For context, the 2013-2020 era is what I would describe as "PowerDNS 3.0" - how we grew from a one (or two) person company to a healthy and thriving department of Open-Xchange.

## Mobile NixOS May 2020 Roundup: Documentation, Architecture Cleanup, and a New Example System

DevFeed: [Mobile NixOS May 2020 Roundup: Documentation, Architecture Cleanup, and a New Example System](<https://devfeed.tech/articles/may-2020-round-up-32462.md>)

Original publisher: [Read original article](<https://mobile.nixos.org/news/2020-06-02-may-2020-round-up.html>)

Author: Samuel Dionne-Riel

Published: 2020-06-02T00:00:00Z

Content type: news

Language: en

Sources: [Mobile NixOS news](<https://devfeed.tech/sources/mobile-nixos-news.md>)

Topics: [Mobile](<https://devfeed.tech/topics/mobile.md>), [Code](<https://devfeed.tech/topics/code.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [systems](<https://devfeed.tech/topics/systems.md>), [User Experience](<https://devfeed.tech/topics/user-experience.md>), [touchscreen](<https://devfeed.tech/topics/touchscreen.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [cleanup](<https://devfeed.tech/tags/cleanup.md>), [display](<https://devfeed.tech/tags/display.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [interface](<https://devfeed.tech/tags/interface.md>), [new-feature](<https://devfeed.tech/tags/new-feature.md>), [series](<https://devfeed.tech/tags/series.md>), [touchscreen](<https://devfeed.tech/tags/touchscreen.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

The May 2020 Mobile NixOS update covers merged documentation and architecture changes, including replacing the device.info option with discrete, well-defined options. It also introduces an examples/hello system that can be cross-compiled and helps users test ports, including touchscreen and display support.

### Source excerpt

This update is the seventh in a series of regular updates on the state of the project. Only changes that have been accepted and merged in Mobile NixOS are chronicled here. There's always more work currently in-progress. Notable changes 11 PRs were merged during the month. Changes are mostly cleanup and documentation related. Documentation changes The biggest change is the addition of an overview of the terms used to define a device (#148). This documentation section should help better understand how devices are composed. The README (#138) as shown on GitHub has been reviewed to better guide users and contributors around the ecosystem, borrowing the organization of the main Nixpkgs README. Though the main reason for this change is that the README started to diverge with the documentation. Removing all examples and referring to the actual documentation files reduces the burden of maintaining multiple documentation fragments. Code and architecture cleanup Through some of the pull requests, a bunch of either dead, or ossified code was found and removed. The main user-facing change is the removal of device.info. The device.info option was a mixed bag of misshapen, undefined options that were at the foundation of all device definitions. The replacement are discrete well-defined options that are defined in understandable categories. Systems define options that they use, making it easier to understand why an option is defined. The main consequence of that change is that the current work-in-progress ports will need to be reviewed to use the new options. As part of #155, additional cleanup was made in the first few commits. New examples/hello system While technically a new feature, the new examples/hello system (#155) is more of a first-user-experience "bugfix" than a useful new feature. This introduces a new example system that can be cross-compiled entirely, and shows an interface to the end-user. This helps fix the biggest complaint about the project: the default build loo

## The Life of a GitHub Action

DevFeed: [The Life of a GitHub Action](<https://devfeed.tech/articles/the-life-of-a-github-action-35207.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/the-life-of-a-github-action/>)

Published: 2019-01-13T15:09:26Z

Content type: tutorial

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [GitHub](<https://devfeed.tech/topics/github.md>), [Code](<https://devfeed.tech/topics/code.md>), [Pull Request](<https://devfeed.tech/topics/pull-request.md>)

Tags: [branch](<https://devfeed.tech/tags/branch.md>), [cleanup](<https://devfeed.tech/tags/cleanup.md>), [code](<https://devfeed.tech/tags/code.md>), [github](<https://devfeed.tech/tags/github.md>), [github-action](<https://devfeed.tech/tags/github-action.md>), [pull-request](<https://devfeed.tech/tags/pull-request.md>), [repository](<https://devfeed.tech/tags/repository.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

This tutorial explains what happens when a GitHub Action runs, using a workflow that deletes a repository branch after its pull request is merged. It introduces the workflow file, triggering pull request events, and the Action execution flow.

### Source excerpt

I thought it might be fun to write a blog post on "The Life of a GitHub Action." When you go through orientation at Google they walk you through "The Life of a Query" and it was one of my favorite things. So I am re-applying the same for a GitHub Action. For those unfamiliar Actions was a feature launched at GitHub's conference Universe last year. You can sign up for the beta here. The overall idea is scriptable GitHub but rather than do all that hand-wavy crap to try and explain I will take you through what happens when you run an Action. The Problem Here is a typical workflow: I create a pull request on a repository. The pull request is merged. The branch lingers around until the end of time and eats away at the part of my soul that likes everything to be clean. Let's focus on my pain of the lingering branches. This is totally a problem right? So let's solve it by creating an Action to delete branches after the pull request has been merged. All the code for this action lives here if you want to skip ahead. The Workflow File You can create actions from the UI or you can write the Workflow file yourself. In this post, I am just going to use a file. Here is what it ends up looking like and I will explain what everything means in comments on the file. This lives in .github/main.workflow in your repository. ## Workflow defines what we want to call a set of actions. workflow "on pull request merge, delete the branch" { ## On pull_request defines that whenever a pull request event is fired this ## workflow will be run. on = "pull_request" ## What is the ending action (or set of actions) that we are running. ## Since we can set what actions "need" in our definition of an action, ## we only care about the last actions run here. resolves = ["branch cleanup"] } ## This is our action, you can have more than one but we just have this one for ## our example. ## I named it branch cleanup, and since it is our last action run it matches ## the name in the resolves section above. a

## Let's Encrypt & App Engine, pt. 2

DevFeed: [Let's Encrypt & App Engine, pt. 2](<https://devfeed.tech/articles/let-s-encrypt-app-engine-pt-2-15747.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/lets-encrypt-app-engine-pt-2>)

Author: Tristan Sokol

Published: 2017-09-29T19:18:01Z

Content type: tutorial

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [Google](<https://devfeed.tech/topics/google.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Shell](<https://devfeed.tech/topics/shell.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [certificates](<https://devfeed.tech/tags/certificates.md>), [cleanup](<https://devfeed.tech/tags/cleanup.md>), [config](<https://devfeed.tech/tags/config.md>), [dns](<https://devfeed.tech/tags/dns.md>), [environment-variables](<https://devfeed.tech/tags/environment-variables.md>), [google](<https://devfeed.tech/tags/google.md>), [hooks](<https://devfeed.tech/tags/hooks.md>)

### AI overview

A tutorial on renewing Let's Encrypt certificates for Google App Engine sites using configuration files and Certbot validation hooks. It explains how shell scripts can automate uploading challenge responses and cleaning them up.

### Source excerpt

The easier way to renew Let's Encrypt certificates on an app engine site

[Next page](<https://devfeed.tech/tags/cleanup.md?cursor=WyIyMDE3LTA5LTI5VDE5OjE4OjAxKzAwOjAwIiwgIjJiNzg3N2RiLTIwYTAtNGJhZC05YTJiLWRhZmQzZjMyYzE5MyJd>)