Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restored topics structure #61

Merged
merged 4 commits into from
Apr 24, 2024

Conversation

zuiderkwast
Copy link
Contributor

@zuiderkwast zuiderkwast commented Apr 24, 2024

This massive change restores the topics/page.md structure of the doc repo, as it was a few years ago.

It my not make sense to review this manually. If you do, you probably want to review one commit at a time. Renaming the files is done in one commit. Fixing the links is done in another commit.

This is done using a script that I can share. This is what it does:

  1. The "aliases" metadata field in each markdown file is used to find the original "topics" filename. This is attempted for all files in the repo with a metadata section.
  2. For files that don't have a "topics/" alias, pick a topics name for it, like this:
    • Do this only for files under "docs/".
    • If the file path matches "..../NAME/_index.md", the new name is "topics/NAME.md"
    • Otherwise, the file path matches "..../NAME" and then the new name is "topics/NAME". (This case covers png files and other non-markdown files too.)
    • If the filename includes 'redis', this is replaced by 'valkey'. Examples: docs/getting-started/installation/install-redis-from-source.md -> topics/install-valkey-from-source.md
    • (Special case: If the target file name ends up "topics.md", use "topics/index.md" instead.)
  3. Rename the files to the new names. Commit the the renames.
  4. Update all links to files (renamed and not renamed), using all aliases discovered using all files with a metadata section.
    • The links are changed to relative links including the .md suffix. This makes it possible to click around in the github web interface. It's also good in other situations. For example, users can deploy the docs (simply .md -> .html) and don't need to deploy the docs in the root directory.
    • Examples:
      • Change link: /docs/reference/cluster-spec => cluster-spec.md (in topics/protocol.md)
      • Change link: /topics/acl => ../topics/acl.md (in commands/auth.md)

Fixes #30

Signed-off-by: Viktor Söderqvist <viktor.soderqvist@est.tech>
Signed-off-by: Viktor Söderqvist <viktor.soderqvist@est.tech>
Signed-off-by: Viktor Söderqvist <viktor.soderqvist@est.tech>
Signed-off-by: Viktor Söderqvist <viktor.soderqvist@est.tech>
@zuiderkwast
Copy link
Contributor Author

To review, it's probably best to try to brows the repo in github's web interface here on my branch: https://github.com/zuiderkwast/valkey-doc/blob/restored-topics-structure/topics/introduction.md

The idea is that the links should work. (Previously they only worked in the rendered website.)

This purpose is to make it easier for doc contributors and to make the docs more self-contained.

@zuiderkwast zuiderkwast marked this pull request as ready for review April 24, 2024 16:17
@zuiderkwast
Copy link
Contributor Author

Details about renamed/moved files and updated links within the files.

Moved files
Rename: docs/manual/keyspace.md -> topics/keyspace.md
Rename: docs/reference/internals/internals-vm.md -> topics/internals-vm.md
Rename: docs/about/history.md -> topics/history.md
Rename: docs/data-types/strings.md -> topics/strings.md
Rename: docs/get-started/img/free-cloud-db.png -> topics/free-cloud-db.png
Rename: docs/reference/key-specs.md -> topics/key-specs.md
Rename: docs/reference/signals.md -> topics/signals.md
Rename: docs/about/_index.md -> topics/introduction.md
Rename: docs/reference/internals/rdd.md -> topics/rdd.md
Rename: docs/reference/eviction/index.md -> topics/lru-cache.md
Rename: docs/management/replication.md -> topics/replication.md
Rename: docs/data-types/geospatial.md -> topics/geospatial.md
Rename: docs/connect/clients/dotnet.md -> topics/dotnet.md
Rename: docs/management/sentinel.md -> topics/sentinel.md
Rename: docs/data-types/_index.md -> topics/data-types.md
Rename: docs/reference/command-arguments.md -> topics/command-arguments.md
Rename: docs/install/install-redis/install-redis-on-windows.md -> topics/install-valkey-on-windows.md
Rename: docs/management/troubleshooting.md -> topics/problems.md
Rename: docs/get-started/data/bikes.json -> topics/bikes.json
Rename: docs/reference/modules/modules-blocking-ops.md -> topics/modules-blocking-ops.md
Rename: docs/manual/patterns/indexes/2idx_1.png -> topics/2idx_1.png
Rename: docs/data-types/hashes.md -> topics/hashes.md
Rename: docs/management/optimization/benchmarks/Connections_chart.png -> topics/Connections_chart.png
Rename: docs/reference/eviction/lru_comparison.png -> topics/lru_comparison.png
Rename: docs/about/releases.md -> topics/releases.md
Rename: docs/about/license.md -> topics/license.md
Rename: docs/data-types/lists.md -> topics/lists.md
Rename: docs/data-types/probabilistic/hyperloglogs.md -> topics/hyperloglogs.md
Rename: docs/reference/command-tips.md -> topics/command-tips.md
Rename: docs/reference/protocol-spec.md -> topics/protocol.md
Rename: docs/manual/patterns/indexes/index.md -> topics/indexing.md
Rename: docs/get-started/_index.md -> topics/get-started.md
Rename: docs/interact/pubsub.md -> topics/pubsub.md
Rename: docs/management/scaling.md -> topics/cluster-tutorial.md
Rename: docs/management/optimization/benchmarks/NUMA_chart.gif -> topics/NUMA_chart.gif
Rename: docs/interact/programmability/lua-api.md -> topics/lua-api.md
Rename: docs/management/optimization/latency.md -> topics/latency.md
Rename: docs/install/install-redis/_index.md -> topics/install-valkey.md
Rename: docs/reference/sentinel-clients.md -> topics/sentinel-clients.md
Rename: docs/management/config.md -> topics/config.md
Rename: docs/interact/programmability/eval-intro.md -> topics/eval-intro.md
Rename: docs/management/security/_index.md -> topics/security.md
Rename: docs/reference/clients.md -> topics/clients.md
Rename: docs/data-types/bitfields.md -> topics/bitfields.md
Rename: docs/interact/programmability/_index.md -> topics/programmability.md
Rename: docs/data-types/bitmaps.md -> topics/bitmaps.md
Rename: docs/reference/internals/internals-rediseventlib.md -> topics/internals-eventlib.md
Rename: docs/management/optimization/cpu-profiling.md -> topics/performance-on-cpu.md
Rename: docs/data-types/sets.md -> topics/sets.md
Rename: docs/reference/arm.md -> topics/ARM.md
Rename: docs/manual/patterns/distributed-locks.md -> topics/distlock.md
Rename: docs/interact/programmability/functions-intro.md -> topics/functions-intro.md
Rename: docs/manual/pipelining/pipeline_iops.png -> topics/pipeline_iops.png
Rename: docs/reference/internals/internals-sds.md -> topics/internals-sds.md
Rename: docs/management/optimization/benchmarks/Data_size.png -> topics/Data_size.png
Rename: docs/data-types/streams.md -> topics/streams-intro.md
Rename: docs/install/install-redis/install-redis-from-source.md -> topics/install-valkey-from-source.md
Rename: docs/reference/cluster-spec.md -> topics/cluster-spec.md
Rename: docs/connect/cli.md -> topics/cli.md
Rename: docs/reference/modules/modules-api-ref.md -> topics/modules-api-ref.md
Rename: docs/manual/keyspace-notifications.md -> topics/notifications.md
Rename: docs/interact/transactions.md -> topics/transactions.md
Rename: docs/reference/gopher.md -> topics/gopher.md
Rename: docs/get-started/data-store.md -> topics/data-store.md
Rename: docs/reference/internals/_index.md -> topics/internals.md
Rename: docs/_index.md -> topics/index.md
Rename: docs/manual/patterns/indexes/2idx_2.png -> topics/2idx_2.png
Rename: docs/manual/patterns/bulk-loading.md -> topics/mass-insertion.md
Rename: docs/management/admin.md -> topics/admin.md
Rename: docs/manual/patterns/twitter-clone.md -> topics/twitter-clone.md
Rename: docs/connect/_index.md -> topics/connect.md
Rename: docs/install/install-redis/install-redis-on-mac-os.md -> topics/install-valkey-on-mac-os.md
Rename: docs/manual/pipelining/index.md -> topics/pipelining.md
Rename: docs/interact/programmability/lua-debugging.md -> topics/ldb.md
Rename: docs/install/install-redis/install-redis-on-linux.md -> topics/install-valkey-on-linux.md
Rename: docs/management/security/acl.md -> topics/acl.md
Rename: docs/reference/modules/_index.md -> topics/modules-intro.md
Rename: docs/reference/modules/modules-native-types.md -> topics/modules-native-types.md
Rename: docs/connect/clients/nodejs.md -> topics/nodejs.md
Rename: docs/data-types/sorted-sets.md -> topics/sorted-sets.md
Rename: docs/management/optimization/latency-monitor.md -> topics/latency-monitor.md
Rename: docs/management/persistence.md -> topics/persistence.md
Rename: docs/management/debugging.md -> topics/debugging.md
Rename: docs/connect/clients/python.md -> topics/python.md
Rename: docs/management/optimization/memory-optimization.md -> topics/memory-optimization.md
Rename: docs/manual/patterns/indexes/2idx_0.png -> topics/2idx_0.png
Rename: docs/connect/clients/go.md -> topics/go.md
Rename: docs/manual/client-side-caching.md -> topics/client-side-caching.md
Rename: docs/management/optimization/benchmarks/index.md -> topics/benchmarks.md
Rename: docs/connect/clients/java.md -> topics/java.md
Rename: docs/get-started/faq.md -> topics/faq.md
Rename: docs/management/security/encryption.md -> topics/encryption.md
Changed links
Change link: /topics/introduction => topics/introduction.md (in _index.md)
Change link: /docs/data-types/streams-tutorial => streams-intro.md (in topics/pubsub.md)
Change link: /topics/protocol#array-reply => protocol.md#array-reply (in topics/pubsub.md)
Change link: /topics/persistence#append-only-file => persistence.md#append-only-file (in topics/transactions.md)
Change link: /topics/protocol#bulk-string-reply => protocol.md#bulk-string-reply (in topics/transactions.md)
Change link: /topics/protocol#nil-reply => protocol.md#nil-reply (in topics/transactions.md)
Change link: /topics/protocol#nil-reply => protocol.md#nil-reply (in topics/transactions.md)
Change link: /commands/eval => ../commands/eval.md (in topics/transactions.md)
Change link: /docs/manual/programmability/functions-intro => functions-intro.md (in topics/programmability.md)
Change link: /docs/manual/programmability/eval-intro => eval-intro.md (in topics/programmability.md)
Change link: /commands => ../commands/ (in topics/programmability.md)
Change link: /topics/data-types-intro =>  (in topics/programmability.md)
Change link: /topics/lua-api => lua-api.md (in topics/programmability.md)
Change link: /topics/eval-intro => eval-intro.md (in topics/programmability.md)
Change link: /topics/functions-intro => functions-intro.md (in topics/programmability.md)
Change link: /topics/transactions => transactions.md (in topics/programmability.md)
Change link: /topics/lua-api#script_flags => lua-api.md#script_flags (in topics/programmability.md)
Change link: /topics/lua-api#script_flags => lua-api.md#script_flags (in topics/programmability.md)
Change link: /docs/manual/programmability/eval-intro => eval-intro.md (in topics/functions-intro.md)
Change link: /topics/eval-intro => eval-intro.md (in topics/functions-intro.md)
Change link: /topics/transactions => transactions.md (in topics/functions-intro.md)
Change link: /topics/lua-api#runtime-globals => lua-api.md#runtime-globals (in topics/functions-intro.md)
Change link: /topics/lua-api => lua-api.md (in topics/functions-intro.md)
Change link: /topics/ldb => ldb.md (in topics/functions-intro.md)
Change link: /topics/transactions => transactions.md (in topics/functions-intro.md)
Change link: /topics/eval-intro => eval-intro.md (in topics/functions-intro.md)
Change link: /topics/lua-api => lua-api.md (in topics/functions-intro.md)
Change link: /topics/lua-api#server.setresp => lua-api.md#server.setresp (in topics/functions-intro.md)
Change link: /topics/lua-api#server.error_reply => lua-api.md#server.error_reply (in topics/functions-intro.md)
Change link: /topics/lua-api#server.register_function_named_args => lua-api.md#server.register_function_named_args (in topics/functions-intro.md)
Change link: /topics/lua-api#script_flags => lua-api.md#script_flags (in topics/functions-intro.md)
Change link: /topics/eval-intro => eval-intro.md (in topics/lua-api.md)
Change link: /topics/functions-intro => functions-intro.md (in topics/lua-api.md)
Change link: /topics/eval-intro => eval-intro.md (in topics/lua-api.md)
Change link: /topics/eval-intro => eval-intro.md (in topics/lua-api.md)
Change link: /topics/eval-intro#execution-under-low-memory-conditions => eval-intro.md#execution-under-low-memory-conditions (in topics/lua-api.md)
Change link: /topics/protocol#resp-errors => protocol.md#resp-errors (in topics/lua-api.md)
Change link: /topics/protocol#resp-simple-strings => protocol.md#resp-simple-strings (in topics/lua-api.md)
Change link: /topics/protocol => protocol.md (in topics/lua-api.md)
Change link: /topics/eval-intro#replicating-commands-instead-of-scripts => eval-intro.md#replicating-commands-instead-of-scripts (in topics/lua-api.md)
Change link: /topics/ldb => ldb.md (in topics/lua-api.md)
Change link: /topics/ldb => ldb.md (in topics/lua-api.md)
Change link: /topics/acl => acl.md (in topics/lua-api.md)
Change link: /docs/manual/programmability/eval-intro/#eval-flags => eval-intro.md#eval-flags (in topics/lua-api.md)
Change link: /topics/eval-intro#eval-flags => eval-intro.md#eval-flags (in topics/lua-api.md)
Change link: /docs/manual/programmability/#read-only_scripts => programmability.md#read-only_scripts (in topics/lua-api.md)
Change link: /topics/eval-intro#eval-flags => eval-intro.md#eval-flags (in topics/lua-api.md)
Change link: /topics/eval-intro#eval-flags => eval-intro.md#eval-flags (in topics/lua-api.md)
Change link: /docs/manual/programmability/functions-intro/#function-flags => functions-intro.md#function-flags (in topics/lua-api.md)
Change link: /docs/manual/programmability/eval-intro/#eval-flags => eval-intro.md#eval-flags (in topics/lua-api.md)
Change link: /topics/protocol => protocol.md (in topics/lua-api.md)
Change link: /topics/protocol#resp-integers => protocol.md#resp-integers (in topics/lua-api.md)
Change link: /topics/protocol#resp-bulk-strings => protocol.md#resp-bulk-strings (in topics/lua-api.md)
Change link: /topics/protocol#resp-arrays => protocol.md#resp-arrays (in topics/lua-api.md)
Change link: /topics/protocol#resp-simple-strings => protocol.md#resp-simple-strings (in topics/lua-api.md)
Change link: /topics/protocol#resp-errors => protocol.md#resp-errors (in topics/lua-api.md)
Change link: /topics/protocol#null-elements-in-arrays => protocol.md#null-elements-in-arrays (in topics/lua-api.md)
Change link: /topics/protocol#resp-arrays => protocol.md#resp-arrays (in topics/lua-api.md)
Change link: /topics/protocol#resp-integers => protocol.md#resp-integers (in topics/lua-api.md)
Change link: /topics/protocol#resp-bulk-strings => protocol.md#resp-bulk-strings (in topics/lua-api.md)
Change link: /topics/protocol#resp-arrays => protocol.md#resp-arrays (in topics/lua-api.md)
Change link: /topics/protocol#resp-simple-strings => protocol.md#resp-simple-strings (in topics/lua-api.md)
Change link: /topics/protocol#resp-errors => protocol.md#resp-errors (in topics/lua-api.md)
Change link: /topics/protocol#null-elements-in-arrays => protocol.md#null-elements-in-arrays (in topics/lua-api.md)
Change link: /topics/protocol#resp-integers => protocol.md#resp-integers (in topics/lua-api.md)
Change link: /topics/protocol => protocol.md (in topics/lua-api.md)
Change link: /topics/protocol => protocol.md (in topics/ldb.md)
Change link: /clients => /clients/ (in topics/ldb.md)
Change link: /commands => ../commands/ (in topics/eval-intro.md)
Change link: /topics/lua-api => lua-api.md (in topics/eval-intro.md)
Change link: /topics/functions-intro => functions-intro.md (in topics/eval-intro.md)
Change link: /topics/lua-api#the-keys-global-variable => lua-api.md#the-keys-global-variable (in topics/eval-intro.md)
Change link: /topics/lua-api#the-argv-global-variable => lua-api.md#the-argv-global-variable (in topics/eval-intro.md)
Change link: /topics/protocol#resp-arrays => protocol.md#resp-arrays (in topics/eval-intro.md)
Change link: /topics/lua-api#data-type-conversion => lua-api.md#data-type-conversion (in topics/eval-intro.md)
Change link: /topics/lua-api#server.call => lua-api.md#server.call (in topics/eval-intro.md)
Change link: /topics/lua-api#server.pcall => lua-api.md#server.pcall (in topics/eval-intro.md)
Change link: /clients => /clients/ (in topics/eval-intro.md)
Change link: /topics/pipelining => pipelining.md (in topics/eval-intro.md)
Change link: /topics/transactions => transactions.md (in topics/eval-intro.md)
Change link: /topics/programmability#maximum-execution-time => programmability.md#maximum-execution-time (in topics/eval-intro.md)
Change link: /topics/ldb => ldb.md (in topics/eval-intro.md)
Change link: /topics/cluster-tutorial => cluster-tutorial.md (in topics/eval-intro.md)
Change link: /topics/replication => replication.md (in topics/eval-intro.md)
Change link: /topics/lua-api#server.replicate_commands => lua-api.md#server.replicate_commands (in topics/eval-intro.md)
Change link: /topics/transactions => transactions.md (in topics/eval-intro.md)
Change link: /topics/lua-api#server.replicate_commands => lua-api.md#server.replicate_commands (in topics/eval-intro.md)
Change link: /topics/lua-api#runtime-libraries => lua-api.md#runtime-libraries (in topics/eval-intro.md)
Change link: /topics/rediscli =>  (in topics/eval-intro.md)
Change link: /topics/ldb => ldb.md (in topics/eval-intro.md)
Change link: /topics/lua-api#server.pcall => lua-api.md#server.pcall (in topics/eval-intro.md)
Change link: /topics/lua-api#script_flags => lua-api.md#script_flags (in topics/eval-intro.md)
Change link: /commands/eval => ../commands/eval.md (in topics/pipelining.md)
Change link: /commands/geoadd => ../commands/geoadd.md (in topics/indexing.md)
Change link: /commands/eval => ../commands/eval.md (in topics/indexing.md)
Change link: /topics/partitioning => cluster-tutorial.md (in topics/twitter-clone.md)
Change link: /topics/protocol => protocol.md (in topics/mass-insertion.md)
Change link: /commands/?group=list => ../commands/?group=list (in topics/lists.md)
Change link: /docs/data-types/sorted-sets => sorted-sets.md (in topics/lists.md)
Change link: /docs/data-types/streams => streams-intro.md (in topics/lists.md)
Change link: /docs/manual/client-side-caching/ => client-side-caching.md (in topics/data-types.md)
Change link: /docs/data-types/lists/ => lists.md (in topics/data-types.md)
Change link: /docs/data-types/streams/ => streams-intro.md (in topics/data-types.md)
Change link: /docs/data-types/strings => strings.md (in topics/data-types.md)
Change link: /docs/data-types/strings/ => strings.md (in topics/data-types.md)
Change link: /commands/?group=string => ../commands/?group=string (in topics/data-types.md)
Change link: /docs/data-types/lists => lists.md (in topics/data-types.md)
Change link: /docs/data-types/lists/ => lists.md (in topics/data-types.md)
Change link: /commands/?group=list => ../commands/?group=list (in topics/data-types.md)
Change link: /docs/data-types/sets => sets.md (in topics/data-types.md)
Change link: /docs/data-types/sets/ => sets.md (in topics/data-types.md)
Change link: /commands/?group=set => ../commands/?group=set (in topics/data-types.md)
Change link: /docs/data-types/hashes => hashes.md (in topics/data-types.md)
Change link: /docs/data-types/hashes/ => hashes.md (in topics/data-types.md)
Change link: /commands/?group=hash => ../commands/?group=hash (in topics/data-types.md)
Change link: /docs/data-types/sorted-sets => sorted-sets.md (in topics/data-types.md)
Change link: /docs/data-types/sorted-sets => sorted-sets.md (in topics/data-types.md)
Change link: /commands/?group=sorted-set => ../commands/?group=sorted-set (in topics/data-types.md)
Change link: /docs/data-types/streams => streams-intro.md (in topics/data-types.md)
Change link: /docs/data-types/streams => streams-intro.md (in topics/data-types.md)
Change link: /commands/?group=stream => ../commands/?group=stream (in topics/data-types.md)
Change link: /docs/data-types/geospatial => geospatial.md (in topics/data-types.md)
Change link: /docs/data-types/geospatial/ => geospatial.md (in topics/data-types.md)
Change link: /commands/?group=geo => ../commands/?group=geo (in topics/data-types.md)
Change link: /docs/data-types/bitmaps/ => bitmaps.md (in topics/data-types.md)
Change link: /docs/data-types/bitmaps/ => bitmaps.md (in topics/data-types.md)
Change link: /commands/?group=bitmap => ../commands/?group=bitmap (in topics/data-types.md)
Change link: /docs/data-types/bitfields/ => bitfields.md (in topics/data-types.md)
Change link: /docs/data-types/bitfields/ => bitfields.md (in topics/data-types.md)
Change link: /docs/data-types/hyperloglogs => hyperloglogs.md (in topics/data-types.md)
Change link: /docs/data-types/hyperloglogs => hyperloglogs.md (in topics/data-types.md)
Change link: /commands/?group=hyperloglog => ../commands/?group=hyperloglog (in topics/data-types.md)
Change link: /docs/manual/programmability/ => programmability.md (in topics/data-types.md)
Change link: /docs/modules/ => /resources/modules/ (in topics/data-types.md)
Change link: /commands/?group=hash => ../commands/?group=hash (in topics/hashes.md)
Change link: /commands/?group=bitmap => ../commands/?group=bitmap (in topics/bitmaps.md)
Change link: /docs/data-types/bitmaps => bitmaps.md (in topics/strings.md)
Change link: /commands/?group=string => ../commands/?group=string (in topics/strings.md)
Change link: /docs/data-types/hashes => hashes.md (in topics/strings.md)
Change link: /commands/?group=geo => ../commands/?group=geo (in topics/geospatial.md)
Change link: /commands#hyperloglog => ../commands/#hyperloglog (in topics/hyperloglogs.md)
Change link: /commands/?group=hyperloglog => ../commands/?group=hyperloglog (in topics/hyperloglogs.md)
Change link: /commands/?group=stream => ../commands/?group=stream (in topics/streams-intro.md)
Change link: /docs/data-types/streams-tutorial => streams-intro.md (in topics/streams-intro.md)
Change link: /commands/?group=set => ../commands/?group=set (in topics/sets.md)
Change link: /commands/?group=sorted-set => ../commands/?group=sorted-set (in topics/sorted-sets.md)
Change link: /docs/getting-started/ => get-started.md (in topics/python.md)
Change link: /docs/getting-started/ => get-started.md (in topics/nodejs.md)
Change link: /docs/getting-started/ => get-started.md (in topics/dotnet.md)
Change link: /docs/connect/cli => cli.md (in topics/connect.md)
Change link: /docs/connect/clients/dotnet => dotnet.md (in topics/connect.md)
Change link: /docs/connect/clients/go => go.md (in topics/connect.md)
Change link: /docs/connect/clients/java => java.md (in topics/connect.md)
Change link: /docs/connect/clients/nodejs => nodejs.md (in topics/connect.md)
Change link: /docs/connect/clients/python => python.md (in topics/connect.md)
Change link: /topics/mass-insert =>  (in topics/cli.md)
Change link: /topics/ldb => ldb.md (in topics/cli.md)
Change link: /commands => ../commands/ (in topics/cli.md)
Change link: /topics/pubsub => pubsub.md (in topics/cli.md)
Change link: /topics/latency => latency.md (in topics/cli.md)
Change link: /topics/lru-cache => lru-cache.md (in topics/cli.md)
Change link: /topics/lru-cache => lru-cache.md (in topics/cli.md)
Change link: /topics/sentinel => sentinel.md (in topics/sentinel-clients.md)
Change link: /topics/sentinel => sentinel.md (in topics/sentinel-clients.md)
Change link: /docs/reference/cluster-spec => cluster-spec.md (in topics/protocol.md)
Change link: /docs/manual/pubsub => pubsub.md (in topics/protocol.md)
Change link: /docs/manual/cli => cli.md (in topics/protocol.md)
Change link: /topics/pipelining => pipelining.md (in topics/protocol.md)
Change link: /topics/lua-api#lua-to-resp3-type-conversion => lua-api.md#lua-to-resp3-type-conversion (in topics/protocol.md)
Change link: /commands/command#flags => ../commands/command.md#flags (in topics/key-specs.md)
Change link: /topics/modules-native-types => modules-native-types.md (in topics/modules-intro.md)
Change link: /topics/modules-blocking-ops => modules-blocking-ops.md (in topics/modules-intro.md)
Change link: /topics/modules-api-ref => modules-api-ref.md (in topics/modules-intro.md)
Change link: /docs/install/install-redis/install-redis-from-source => install-valkey-from-source.md (in topics/install-valkey.md)
Change link: /docs/install/install-redis/install-redis-on-linux => install-valkey-on-linux.md (in topics/install-valkey.md)
Change link: /docs/install/install-redis/install-redis-on-mac-os => install-valkey-on-mac-os.md (in topics/install-valkey.md)
Change link: /docs/install/install-redis/install-redis-on-windows => install-valkey-on-windows.md (in topics/install-valkey.md)
Change link: /docs/management/admin/ => admin.md (in topics/install-valkey.md)
Change link: /clients => /clients/ (in topics/install-valkey.md)
Change link: /docs/management/persistence/ => persistence.md (in topics/install-valkey.md)
Change link: /docs/management/persistence/ => persistence.md (in topics/install-valkey.md)
Change link: /docs/management/config/ => config.md (in topics/install-valkey.md)
Change link: /docs/install/install-redis/install-redis-from-source => install-valkey-from-source.md (in topics/install-valkey-on-mac-os.md)
Change link: /docs/get-started/data-store => data-store.md (in topics/get-started.md)
Change link: /docs/get-started/faq/ => faq.md (in topics/get-started.md)
Change link: /docs/connect => /docs/connect/ (in topics/data-store.md)
Change link: /commands/ => ../commands/ (in topics/data-store.md)
Change link: /docs/manual/keyspace/ => keyspace.md (in topics/data-store.md)
Change link: /commands/scan/ => ../commands/scan.md (in topics/data-store.md)
Change link: /commands/scan/ => ../commands/scan.md (in topics/data-store.md)
Change link: /topics/partitioning => cluster-tutorial.md (in topics/faq.md)
Change link: /topics/memory-optimization => memory-optimization.md (in topics/faq.md)
Change link: /docs/manual/eviction/ => lru-cache.md (in topics/faq.md)
Change link: /topics/partitioning => cluster-tutorial.md (in topics/faq.md)
Change link: /topics/history => history.md (in topics/faq.md)
Change link: /docs/data-types/strings/ => strings.md (in topics/introduction.md)
Change link: /docs/data-types/hashes/ => hashes.md (in topics/introduction.md)
Change link: /docs/data-types/lists/ => lists.md (in topics/introduction.md)
Change link: /docs/data-types/sets/ => sets.md (in topics/introduction.md)
Change link: /docs/data-types/sorted-sets/ => sorted-sets.md (in topics/introduction.md)
Change link: /docs/data-types/bitmaps/ => bitmaps.md (in topics/introduction.md)
Change link: /docs/data-types/hyperloglogs/ => hyperloglogs.md (in topics/introduction.md)
Change link: /docs/data-types/geospatial/ => geospatial.md (in topics/introduction.md)
Change link: /docs/data-types/streams/ => streams-intro.md (in topics/introduction.md)
Change link: /topics/replication => replication.md (in topics/introduction.md)
Change link: /commands/eval => ../commands/eval.md (in topics/introduction.md)
Change link: /docs/reference/eviction/ => lru-cache.md (in topics/introduction.md)
Change link: /topics/transactions => transactions.md (in topics/introduction.md)
Change link: /topics/persistence => persistence.md (in topics/introduction.md)
Change link: /topics/sentinel => sentinel.md (in topics/introduction.md)
Change link: /topics/cluster-tutorial => cluster-tutorial.md (in topics/introduction.md)
Change link: /commands/append => ../commands/append.md (in topics/introduction.md)
Change link: /commands/hincrby => ../commands/hincrby.md (in topics/introduction.md)
Change link: /commands/lpush => ../commands/lpush.md (in topics/introduction.md)
Change link: /commands/sinter => ../commands/sinter.md (in topics/introduction.md)
Change link: /commands/sunion => ../commands/sunion.md (in topics/introduction.md)
Change link: /commands/sdiff => ../commands/sdiff.md (in topics/introduction.md)
Change link: /commands/zrange => ../commands/zrange.md (in topics/introduction.md)
Change link: /topics/persistence#snapshotting => persistence.md#snapshotting (in topics/introduction.md)
Change link: /topics/persistence#append-only-file => persistence.md#append-only-file (in topics/introduction.md)
Change link: /topics/replication => replication.md (in topics/introduction.md)
Change link: /topics/transactions => transactions.md (in topics/introduction.md)
Change link: /topics/pubsub => pubsub.md (in topics/introduction.md)
Change link: /commands/eval => ../commands/eval.md (in topics/introduction.md)
Change link: /commands/expire => ../commands/expire.md (in topics/introduction.md)
Change link: /docs/reference/eviction => lru-cache.md (in topics/introduction.md)
Change link: /topics/sentinel => sentinel.md (in topics/introduction.md)
Change link: /clients => /clients/ (in topics/introduction.md)
Change link: /topics/security => security.md (in topics/admin.md)
Change link: /topics/quickstart =>  (in topics/admin.md)
Change link: /topics/sentinel => sentinel.md (in topics/admin.md)
Change link: /topics/cluster-tutorial => cluster-tutorial.md (in topics/admin.md)
Change link: /topics/lru-cache => lru-cache.md (in topics/config.md)
Change link: /docs/reference/eviction => lru-cache.md (in topics/memory-optimization.md)
Change link: /commands/slowlog => ../commands/slowlog.md (in topics/latency.md)
Change link: /topics/latency-monitor => latency-monitor.md (in topics/latency.md)
Change link: /topics/latency-monitor => latency-monitor.md (in topics/latency.md)
Change link: /commands/slowlog => ../commands/slowlog.md (in topics/latency.md)
Change link: /topics/pipelining => pipelining.md (in topics/benchmarks.md)
Change link: /topics/latency => latency.md (in topics/latency-monitor.md)
Change link: /docs/manual/scaling => cluster-tutorial.md (in topics/sentinel.md)
Change link: /topics/acl => acl.md (in topics/sentinel.md)
Change link: /topics/acl => acl.md (in topics/sentinel.md)
Change link: /topics/acl => acl.md (in topics/sentinel.md)
Change link: /topics/sentinel-clients => sentinel-clients.md (in topics/sentinel.md)
Change link: /topics/latency => latency.md (in topics/problems.md)
Change link: /topics/debugging => debugging.md (in topics/problems.md)
Change link: /docs/management/security/acl/ => acl.md (in topics/security.md)
Change link: /topics/key-specs#logical-operation-flags => key-specs.md#logical-operation-flags (in topics/acl.md)
Change link: /topics/security => security.md (in topics/replication.md)
Change link: /topics/cluster-spec => cluster-spec.md (in topics/cluster-tutorial.md)
Change link: /topics/cluster-spec => cluster-spec.md (in topics/cluster-tutorial.md)
Change link: /topics/cluster-spec => cluster-spec.md (in topics/cluster-tutorial.md)
Change link: /docs/reference/protocol-spec#arrays => topics/protocol.md#arrays (in README.md)
Change link: /docs/reference/protocol-spec#bulk-strings => topics/protocol.md#bulk-strings (in README.md)
Change link: /docs/reference/protocol-spec#simple-errors => topics/protocol.md#simple-errors (in README.md)
Change link: /docs/reference/cluster-spec/#hash-tags => ../topics/cluster-spec.md#hash-tags (in commands/sort.md)
Change link: /topics/streams-intro => ../topics/streams-intro.md (in commands/xpending.md)
Change link: /topics/streams-intro => ../topics/streams-intro.md (in commands/xpending.md)
Change link: /docs/interact/pubsub/ => ../topics/pubsub.md (in commands/psubscribe.md)
Change link: /topics/client-side-caching => ../topics/client-side-caching.md (in commands/client-trackinginfo.md)
Change link: /topics/client-side-caching => ../topics/client-side-caching.md (in commands/client-tracking.md)
Change link: /topics/client-side-caching => ../topics/client-side-caching.md (in commands/client-tracking.md)
Change link: /topics/functions-intro => ../topics/functions-intro.md (in commands/function-delete.md)
Change link: /topics/streams-intro => ../topics/streams-intro.md (in commands/xreadgroup.md)
Change link: /topics/streams-intro => ../topics/streams-intro.md (in commands/xreadgroup.md)
Change link: /topics/programmability => ../topics/programmability.md (in commands/evalsha.md)
Change link: /topics/eval-intro => ../topics/eval-intro.md (in commands/evalsha.md)
Change link: /docs/manual/programmability/#read-only-scripts => ../topics/programmability.md#read-only-scripts (in commands/evalsha_ro.md)
Change link: /topics/eval-intro => ../topics/eval-intro.md (in commands/evalsha_ro.md)
Change link: /docs/management/scaling/ => ../topics/cluster-tutorial.md (in commands/keys.md)
Change link: /docs/reference/cluster-spec/#hash-tags => ../topics/cluster-spec.md#hash-tags (in commands/keys.md)
Change link: /topics/streams-intro => ../topics/streams-intro.md (in commands/xclaim.md)
Change link: /topics/pubsub#pubsub => ../topics/pubsub.md#pubsub (in commands/cluster-info.md)
Change link: /topics/pubsub#sharded-pubsub => ../topics/pubsub.md#sharded-pubsub (in commands/cluster-info.md)
Change link: /topics/cluster-spec#cluster-current-epoch => ../topics/cluster-spec.md#cluster-current-epoch (in commands/cluster-info.md)
Change link: /docs/manual/programmability/functions-intro/#function-flags => ../topics/functions-intro.md#function-flags (in commands/function-list.md)
Change link: /topics/functions-intro => ../topics/functions-intro.md (in commands/function-list.md)
Change link: /topics/acl => ../topics/acl.md (in commands/client-kill.md)
Change link: /topics/eval-intro => ../topics/eval-intro.md (in commands/script-flush.md)
Change link: /topics/pubsub#sharded-pubsub => ../topics/pubsub.md#sharded-pubsub (in commands/spublish.md)
Change link: /topics/functions-intro => ../topics/functions-intro.md (in commands/function-kill.md)
Change link: /topics/programmability => ../topics/programmability.md (in commands/fcall.md)
Change link: /topics/functions-intro => ../topics/functions-intro.md (in commands/fcall.md)
Change link: /topics/client-side-caching => ../topics/client-side-caching.md (in commands/client-getredir.md)
Change link: /topics/pubsub#sharded-pubsub => ../topics/pubsub.md#sharded-pubsub (in commands/ssubscribe.md)
Change link: /topics/lua-api#server.register_function => ../topics/lua-api.md#server.register_function (in commands/function-load.md)
Change link: /topics/functions-intro => ../topics/functions-intro.md (in commands/function-load.md)
Change link: /topics/eval-intro => ../topics/eval-intro.md (in commands/script-load.md)
Change link: /topics/streams-intro => ../topics/streams-intro.md (in commands/xread.md)
Change link: /topics/streams-intro => ../topics/streams-intro.md (in commands/xread.md)
Change link: /docs/management/scaling/ => ../topics/cluster-tutorial.md (in commands/scan.md)
Change link: /docs/reference/cluster-spec/#hash-tags => ../topics/cluster-spec.md#hash-tags (in commands/scan.md)
Change link: /topics/memory-optimization => ../topics/memory-optimization.md (in commands/scan.md)
Change link: /topics/memory-optimization => ../topics/memory-optimization.md (in commands/scan.md)
Change link: /docs/manual/keyspace => ../topics/keyspace.md (in commands/scan.md)
Change link: /topics/functions-intro => ../topics/functions-intro.md (in commands/function-stats.md)
Change link: /topics/clients#client-eviction => ../topics/clients.md#client-eviction (in commands/client-no-evict.md)
Change link: /topics/clients#client-eviction => ../topics/clients.md#client-eviction (in commands/client-no-evict.md)
Change link: /topics/acl => ../topics/acl.md (in commands/acl-setuser.md)
Change link: /topics/acl#key-permissions => ../topics/acl.md#key-permissions (in commands/acl-setuser.md)
Change link: /topics/acl#key-permissions => ../topics/acl.md#key-permissions (in commands/acl-setuser.md)
Change link: /docs/management/security/acl#selectors => ../topics/acl.md#selectors (in commands/acl-setuser.md)
Change link: /topics/key-specs#logical-operation-flags => ../topics/key-specs.md#logical-operation-flags (in commands/command-getkeys.md)
Change link: /topics/functions-intro => ../topics/functions-intro.md (in commands/function-flush.md)
Change link: /docs/interact/pubsub/ => ../topics/pubsub.md (in commands/subscribe.md)
Change link: /docs/management/security/acl/ => ../topics/acl.md (in commands/acl.md)
Change link: /topics/signals => ../topics/signals.md (in commands/shutdown.md)
Change link: /topics/functions-intro => ../topics/functions-intro.md (in commands/function-restore.md)
Change link: /topics/lua-api => ../topics/lua-api.md (in commands/eval.md)
Change link: /topics/lua-api#the-keys-global-variable => ../topics/lua-api.md#the-keys-global-variable (in commands/eval.md)
Change link: /topics/programmability => ../topics/programmability.md (in commands/eval.md)
Change link: /topics/eval-intro => ../topics/eval-intro.md (in commands/eval.md)
Change link: /topics/client-side-caching => ../topics/client-side-caching.md (in commands/client-caching.md)
Change link: /topics/eval-intro => ../topics/eval-intro.md (in commands/script-kill.md)
Change link: /topics/streams-intro => ../topics/streams-intro.md (in commands/xadd.md)
Change link: /topics/acl => ../topics/acl.md (in commands/auth.md)
Change link: /topics/acl => ../topics/acl.md (in commands/auth.md)
Change link: /topics/eval-intro => ../topics/eval-intro.md (in commands/script-exists.md)
Change link: /topics/pubsub#sharded-pubsub => ../topics/pubsub.md#sharded-pubsub (in commands/sunsubscribe.md)
Change link: /topics/streams-intro => ../topics/streams-intro.md (in commands/xrange.md)
Change link: /topics/streams-intro => ../topics/streams-intro.md (in commands/xrange.md)
Change link: /topics/functions-intro => ../topics/functions-intro.md (in commands/function-dump.md)
Change link: /docs/management/security/acl/#command-categories => ../topics/acl.md#command-categories (in commands/command-list.md)
Change link: /docs/manual/programmability/#read-only-scripts => ../topics/programmability.md#read-only-scripts (in commands/eval_ro.md)
Change link: /topics/eval-intro => ../topics/eval-intro.md (in commands/eval_ro.md)
Change link: /topics/transactions => ../topics/transactions.md (in commands/command.md)
Change link: /topics/eval-intro => ../topics/eval-intro.md (in commands/command.md)
Change link: /topics/functions-intro => ../topics/functions-intro.md (in commands/command.md)
Change link: /topics/pubsub => ../topics/pubsub.md (in commands/command.md)
Change link: /docs/manual/programmability/#read-only_scripts => ../topics/programmability.md#read-only_scripts (in commands/fcall_ro.md)
Change link: /topics/functions-intro => ../topics/functions-intro.md (in commands/fcall_ro.md)
Change link: /topics/ldb => ../topics/ldb.md (in commands/script-debug.md)
Change link: /topics/eval-intro => ../topics/eval-intro.md (in commands/script-debug.md)
Change link: /topics/cluster-spec#ask-redirection => ../topics/cluster-spec.md#ask-redirection (in commands/asking.md)
Change link: /topics/key-specs#logical-operation-flags => ../topics/key-specs.md#logical-operation-flags (in commands/command-getkeysandflags.md)
Change link: /topics/key-specs#logical-operation-flags => ../topics/key-specs.md#logical-operation-flags (in commands/command-getkeysandflags.md)

@zuiderkwast
Copy link
Contributor Author

Here is the Perl script. (Sorry, Perl is my native language for this kind of tasks. 😁)

move-files-fix-links.pl
#!/usr/bin/perl


#
# "Usage: find | $0\n";
#

use warnings;
use strict;

my $verbose = 1;

my $filenames = [];
my $rename_to = {}; # current filename => preferred filename
my $aliases = {}; # alias name (starts with slash, no suffix) => target filename

sub add_filename_alias {
    my ($alias, $target) = (@_);
    $alias =~ s!\.md$!!;
    $alias = "/" . $alias;
    $target =~ s!/_index$!/!;
    $aliases->{$alias} = $target;
}

# 1st pass. Collect filenames, aliases and store prefered alias in rename_to.
while (<>) {
    chomp;
    s!^\./!!;                   # Strip leading ./ from path
    next if /^\./;              # Skip hidden files
    next if /^tmp/;             # Skip tmp files
    my $filename = $_;
    add_filename_alias("$filename/", "$filename/index.md") if -d $filename;
    next unless -f $filename;   # Skip non-regular files.
    open my $f, $filename or die;
    push @$filenames, $filename;
    #print "Added $filename\n";

    # Add alias to itself /xxx --> xxx.md
    add_filename_alias($filename, $filename);
    
    # If there's any metadata, the first line contains three dashes (optionally
    # preceded by an UTF-8 BOM).
    $_ = <$f>;
    # if (!defined $_) {
    #     die "Something whatever in $filename\n";
    # }
    do {close $f; next} unless /^(?:\x{ef}\x{bb}\x{bf})?---/;
    my $in_aliases = 0;
    my $topic = undef;
    while (<$f>) {
        last if /^---/;
        if ($in_aliases) {
            last if /^\]/;
            if (/^\s*-?\s*([\/\w\d\._-]+),?\s*$/) {
                my $alias = $1;
                if ($alias =~ /_/) {
                    # Alias contains underscore. Add aliases with underscore and
                    # with dash. One example is known (topics/lru-cache)
                    $aliases->{$alias} = $filename;
                    $alias =~ tr/_/-/;
                }
                $aliases->{$alias} = $filename;
                if (!$topic && $alias =~ /^\/topic.*/) {
                    $topic = $alias;
                    $topic .= '.md' unless $topic =~ /\.md$/;
                    $rename_to->{$filename} = $topic;
                }
            }
        } else {
            $in_aliases = 1 if /^aliases:/;
        }
    }
    close $f;
}

print @$filenames." files found\n";

if (!@$filenames) {
    die "Usage: find | $0\n";
}

# 2nd pass:
# - Choose a new name for files that don't aldready have a /topic/ alias.
# - Some processing of the target filename.
foreach my $filename (@$filenames) {
    my $target;
    if (defined $rename_to->{$filename}) {
        $target = $rename_to->{$filename};
        $target =~ s!^/!!;
    } elsif ($filename !~ /^docs\//) {
        # Outside of docs, only rename _index.md to index.md
        $target = $filename;
        $target =~ s!/_index.md!/index.md!;
    } elsif ($filename =~ /\/([^\/]+)\/_index.md$/) {
        $target = "topics/$1.md";
    } elsif ($filename =~ /([^\/]+)$/) {
        $target = "topics/$1";
    } else {
        die "Can't figure out new filename for $filename\n";
    }

    # Some processing of the names. Only rebrand pages under topics. (We don't
    # want to rename clients.)
    $target =~ s/\bredis\b/valkey/g if $target =~ /^topics\//;
    $target = "topics/index.md" if $target eq "topics.md";

    # Add alias with the name minus .md
    if ($target =~ /^([^\/].*)\.md$/) {
        $aliases->{"/$1"} = $target;
    }

    unless ($filename eq $target) {
        $rename_to->{$filename} = $target;
    }
}

# 3rd pass: Update the aliases which map to a file that is to be renamed
foreach my $alias (keys %$aliases) {
    my $filename = $aliases->{$alias};
    if (defined $rename_to->{$filename}) {
        my $to = $rename_to->{$filename};
        $aliases->{$alias} = $to;
    }
    print "Alias: $alias -> $aliases->{$alias}\n" if $verbose;
}

sub unalias {
    my ($link, $filename) = (@_);
    my $old = $link; # new link
    my $anchor = "";
    
    if ($link =~ /^https?::/ || $link =~ /^#/) {
        printf "Skip non-relative link $link in $filename\n";
        return $link;
    }

    if ($link =~ /^([^?#]*)([?#].*)/) {
        $link = $1;
        $anchor = $2;
    }
    
    if (defined $aliases->{$link}) {
        # Alias found.
        $link = $aliases->{$link};
    } elsif ($link =~ /^(.*)\// && defined $aliases->{$1}) {
        # Link has trailing slash. Alias doesn't. Drop it.
        $link = $aliases->{$1};
    } elsif ($link =~ /[^\/]$/ && defined $aliases->{"$link/"}) {
        # Link missing trailing slash, but alias has one. Use that.
        $link = $aliases->{"$link/"};
    } elsif ($link =~ /\/$/ && defined $aliases->{$link . "_index"}) {
        # Link has trailing slash, alias has /_index. Use that.
        $link = $aliases->{$link . "_index"};
    } elsif ($link =~ /[^\/]$/ && defined $aliases->{"$link/_index"}) {
        # Link missing trailing slash, alias has /_index. Use that.
        $link = $aliases->{"$link/_index"};
    } elsif ($link =~ /\/$/ && defined $aliases->{$link . "index"}) {
        # Link has trailing slash, alias has /index. Use that.
        $link = $aliases->{$link . "index"};
    } elsif ($link =~ /[^\/]$/ && defined $aliases->{"$link/index"}) {
        # Link missing trailing slash, alias has /index. Use that.
        $link = $aliases->{"$link/index"};
    } else {
        print "### Broken link $link in file $filename\n";
        return $link;
    }
    $link =~ s!/index.md!/!;
    $link = "/$link";
    $link .= $anchor if $anchor;

    # Convert to relative link.
    if ($link =~ m!^/topics/! && $filename =~ m!^topics/[^/]*$!) {
        $link =~ s!^/topics/!!;
    } elsif ($link =~ m!^/commands/! && $filename =~ m!^commands/[^/]*$!) {
        $link =~ s!^/commands/!!;
    } elsif ($filename =~ m!^[^/]*$!) {
        # File is in the root dir. Remove leading slash in link.
        $link =~ s!^/!!;
    } elsif ($link =~ m!^/topics/! && $filename =~ m!^commands/[^/]*$!) {
        $link = "..$link";
    } elsif ($link =~ m!^/commands/! && $filename =~ m!^topics/[^/]*$!) {
        $link = "..$link";
    }

    if ($link eq $old) {
        # print "Link unchanged: $link in $filename\n";
    } else {
        print "Change link: $old => $link (in $filename)\n"; # print as a diff
    }
    return $link;
}

# 4th pass: rename files.

foreach my $key(keys %$rename_to) {
    my $value = $rename_to->{$key};
    if ($value =~ m!^/!) {
        die "Don't want to rename $key to $value\n";
    }
    print "Rename: $key -> $value\n";
    `git mv $key $value`;
}

# Commit renamed files
`git commit -sam "Move doc files to /topics/"`;

# 5th pass: update links inside files.
foreach my $filename (@$filenames) {
    if (defined $rename_to->{$filename}) {
        $filename = $rename_to->{$filename};
    }
    next if $filename !~ /\.md$/;
    open(my $in, "<", $filename) or die "Can't open $filename: $!";
    open(my $out, ">", "$filename~~~") or die "Can't create $filename~~~: $!";
    while (<$in>) {
        s%\]\((/[^:\)]*)\)%'](' . unalias($1, $filename) . ')'%ge;
        print $out $_;
    }
    close $in;
    close $out;
    rename "$filename~~~", $filename;
}

(If you want to try it, first mkdir topics. Otherwise it doesn't work.)

@zuiderkwast
Copy link
Contributor Author

Personally, I think we can merge this and get the website up. Then we can update it regularily later. The longer this kind massive (but somehow trivial) changes wait, the more merge conflicts and other trouble for this and other PRs.

Copy link
Member

@stockholmux stockholmux left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I scanned through the files and it looks like what you say, so I'm going to just approve it.

@stockholmux
Copy link
Member

Although that Perl is gnarly and I never want to see it again @zuiderkwast ;)

Copy link
Member

@madolson madolson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just looked at the commits and the approach.

@zuiderkwast
Copy link
Contributor Author

Awesome, thanks! Should we keep the individual commits? It makes it easier to see what's moved in one commit. (I can enable rebase-and-merge temporarily.)

@zuiderkwast zuiderkwast merged commit baffe05 into valkey-io:main Apr 24, 2024
1 check passed
@zuiderkwast
Copy link
Contributor Author

Should we keep the individual commits?

Squash-merged. It's possible to go back to this PR to see each commit, if anyone ever wants to do that.

stockholmux added a commit to valkey-io/valkey-io.github.io that referenced this pull request May 1, 2024
### Description

1. Updates the docs submodule
2. changes the structure to reflect the flat `/topic/...` structure
adopted in valkey-io/valkey-doc#61
 
### Issues Resolved

n/a

### Check List
- [x] Commits are signed per the DCO using `--signoff`

By submitting this pull request, I confirm that my contribution is made
under the terms of the BSD-3-Clause License.

---------

Signed-off-by: Kyle J. Davis <kyledvs@amazon.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Move files and fix links
3 participants