Skip to content

Tracking Deprecated io/ioutil Package Usage #52

@sebrandon1

Description

@sebrandon1

Deprecated io/ioutil Usage Report

Last Updated: 2025-12-18 07:55:30 UTC
Replacement: Use io and os packages
Reference: Go 1.16 Release Notes

Summary

  • Total Repositories Scanned: 537
  • Repositories Skipped (forks): 224
  • Repositories Skipped (abandoned - no commits in 6 months): 85
  • Repositories Skipped (non-Go): 6
  • Repositories Actually Checked: 222
  • Repositories Using Deprecated io/ioutil: 44
  • Usage Percentage: 19.8%

openshift

Repositories Using Deprecated io/ioutil: 44

Repository Branch Last Updated PR Status Needs Rebase?
cluster-kube-apiserver-operator main 2025-12-18 🔄 #1971 ❓ Unknown
external-secrets-operator main 2025-12-18
cluster-authentication-operator master 2025-12-18
hypershift main 2025-12-18
operator-framework-operator-controller main 2025-12-18
hive master 2025-12-18
ptp-operator main 2025-12-17 🔄 #642 ❓ Unknown
rosa master 2025-12-17
origin main 2025-12-17
oc main 2025-12-17
service-ca-operator main 2025-12-17 🔄 #292 ✅ No
oauth-apiserver master 2025-12-17 🔄 #156 ✅ No
cluster-ingress-operator master 2025-12-17
console-operator main 2025-12-17 🔄 #1072 ❓ Unknown
machine-config-operator main 2025-12-16 🔄 #5438 ✅ No
zero-trust-workload-identity-manager main 2025-12-16
file-integrity-operator master 2025-12-15 🔄 #803 ❓ Unknown
cloud-credential-operator master 2025-12-15 #920 ✅ No
oc-mirror main 2025-12-15
api master 2025-12-14 🔄 #2603 ✅ No
sriov-network-operator main 2025-12-09
openshift-controller-manager master 2025-12-08 🔄 #422 ✅ No
cluster-debug-tools master 2025-12-05
ocp-release-operator-sdk main 2025-12-05
cluster-etcd-operator main 2025-12-04
operator-framework-olm main 2025-12-03 🔄 #1160 ✅ No
cluster-baremetal-operator main 2025-12-02
cluster-kube-scheduler-operator main 2025-12-02
oauth-server master 2025-12-01 🔄 #202 ⚠️ Yes
baremetal-runtimecfg main 2025-11-26 🔄 #373 ✅ No
cluster-samples-operator main 2025-11-26 🔄 #668 ✅ No
machine-api-provider-aws main 2025-11-25
openshift-apiserver main 2025-11-25
cluster-dns-operator master 2025-11-21 🔄 #454 ✅ No
machine-api-provider-azure main 2025-11-17
sriov-dp-admission-controller main 2025-11-17 🔄 #123 ✅ No
builder main 2025-11-10 🔄 #490 ✅ No
cluster-bootstrap main 2025-10-17 🔄 #123 ✅ No
generic-admission-server master 2025-10-17 🔄 #57 ✅ No
imagebuilder master 2025-10-16
csi-driver-manila-operator master 2025-10-07
openshift-velero-plugin oadp-dev 2025-10-02 🔄 #362 ✅ No
azure-service-operator main 2025-10-01
content-mirror main 2025-08-18 🔄 #14 ✅ No

What to Do

The io/ioutil package was deprecated in Go 1.16 (February 2021) and its functionality has been moved to the io and os packages.

Migration Guide

The following table shows the replacements for deprecated io/ioutil functions:

Deprecated (io/ioutil) Replacement Package
ioutil.Discard io.Discard io
ioutil.NopCloser io.NopCloser io
ioutil.ReadAll io.ReadAll io
ioutil.ReadDir os.ReadDir os
ioutil.ReadFile os.ReadFile os
ioutil.TempDir os.MkdirTemp os
ioutil.TempFile os.CreateTemp os
ioutil.WriteFile os.WriteFile os

Migration Steps

  1. Update import statements:

    // Remove this:
    import "io/ioutil"
    
    // Add these as needed:
    import "io"
    import "os"
  2. Replace function calls:

    // Example: ReadFile
    data, err := ioutil.ReadFile("file.txt")  // Old
    data, err := os.ReadFile("file.txt")     // New
  3. Run tests:

    go test ./...

Resources


This issue is automatically updated by the ioutil-deprecation-checker.sh script.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions