Ruby can create a directory and list entries in a deterministic order.

Directory Listing

directory_listing.rb
require "tmpdir"

extra_file = 

Dir.mktmpdir do |dir|
  project_dir = File.join(dir, "project")
  Dir.mkdir(project_dir)

  File.write(File.join(project_dir, "readme.txt"), "readme\n")
  File.write(File.join(project_dir, extra_file), "item\n")

  entries = Dir.children(project_dir).sort

  puts "directory=#{File.basename(project_dir)}"
  puts "entries=#{entries.join(",")}"
  puts "count=#{entries.length}"
end
require "tmpdir"

extra_file = 

Dir.mktmpdir do |dir|
  project_dir = File.join(dir, "project")
  Dir.mkdir(project_dir)

  File.write(File.join(project_dir, "readme.txt"), "readme\n")
  File.write(File.join(project_dir, extra_file), "item\n")

  entries = Dir.children(project_dir).sort

  puts "directory=#{File.basename(project_dir)}"
  puts "entries=#{entries.join(",")}"
  puts "count=#{entries.length}"
end
require "tmpdir"

extra_file = 

Dir.mktmpdir do |dir|
  project_dir = File.join(dir, "project")
  Dir.mkdir(project_dir)

  File.write(File.join(project_dir, "readme.txt"), "readme\n")
  File.write(File.join(project_dir, extra_file), "item\n")

  entries = Dir.children(project_dir).sort

  puts "directory=#{File.basename(project_dir)}"
  puts "entries=#{entries.join(",")}"
  puts "count=#{entries.length}"
end
directory listing Sorting directory entries makes output stable and easier to compare.