oliverdavies.uk/content/node.88cc2e9a-ea05-43a6-a13a-dad8450f7a1e.json
2025-05-11 20:02:13 +01:00

100 lines
No EOL
6.2 KiB
JSON

{
"uuid": [
{
"value": "88cc2e9a-ea05-43a6-a13a-dad8450f7a1e"
}
],
"langcode": [
{
"value": "en"
}
],
"type": [
{
"target_id": "daily_email",
"target_type": "node_type",
"target_uuid": "8bde1f2f-eef9-4f2d-ae9c-96921f8193d7"
}
],
"revision_timestamp": [
{
"value": "2025-04-21T01:21:38+00:00"
}
],
"revision_uid": [
{
"target_type": "user",
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
}
],
"revision_log": [],
"status": [
{
"value": true
}
],
"uid": [
{
"target_type": "user",
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
}
],
"title": [
{
"value": "Introducing Versa - the versatile CLI tool"
}
],
"created": [
{
"value": "2024-02-19T00:00:00+00:00"
}
],
"changed": [
{
"value": "2025-04-21T01:21:38+00:00"
}
],
"promote": [
{
"value": false
}
],
"sticky": [
{
"value": false
}
],
"default_langcode": [
{
"value": true
}
],
"revision_translation_affected": [
{
"value": true
}
],
"path": [
{
"alias": "\/daily\/2024\/02\/19\/introducing-versa",
"langcode": null
}
],
"body": [
{
"value": "\n <p>Today, I started to build a new open-source project - Versa, the versatile command-line tool that standardises common commands across projects.<\/p>\n\n<p>After watching a Twitch streamer building something similar in Rust, I decided to build my take on it and add features I'd need, such as support for local vs Docker-based commands and to run different commands for different projects.<\/p>\n\n<p>For example, <code>versa run<\/code> would need to run different commands for Drupal and Sculpin projects, <code>versa test<\/code> should support different test frameworks for the same language - e.g. PHPUnit, Pest and ParaTest for PHP - and the commands will need to be different in Docker Compose-based projects.<\/p>\n\n<p>Currently, this logic is within my <a href=\"https:\/\/www.oliverdavies.uk\/build-configs\">Build Configs<\/a> project but can be moved to Versa.<\/p>\n\n<p>This reduces the complexity within that codebase and means I can open-source it as it's a separate project.<\/p>\n\n<p>At the moment, I've added PHP as the only supported language but I will add JavaScript\/TypeScript support so it supports projects like Fractal.<\/p>\n\n<p>It's still in the prototype phase and includes some initial commands, but the interesting parts will be making it clever.<\/p>\n\n<p>Instead of running <code>versa run --type sculpin<\/code>, I'd like to just do <code>versa run<\/code> and have it determine the type of project automatically.<\/p>\n\n<p><code>versa test<\/code> should be able to determine the testing framework automatically based on what's in the project's <code>composer.json<\/code> file instead of having to specify it.<\/p>\n\n<p>Likewise, for JavaScript, <code>versa install<\/code> should be able to determine if <code>npm<\/code>, <code>yarn<\/code> or <code>pnpm<\/code> is used.<\/p>\n\n<p>That'll be where the more complex code will be added and when I start doing test-driven development - maybe with Behat, which is also something I've been thinking about for Build Configs.<\/p>\n\n<p>Interested? <a href=\"https:\/\/github.com\/opdavies\/versa\">Take a look at the code<\/a>.<\/p>\n\n ",
"format": "full_html",
"processed": "\n <p>Today, I started to build a new open-source project - Versa, the versatile command-line tool that standardises common commands across projects.<\/p>\n\n<p>After watching a Twitch streamer building something similar in Rust, I decided to build my take on it and add features I'd need, such as support for local vs Docker-based commands and to run different commands for different projects.<\/p>\n\n<p>For example, <code>versa run<\/code> would need to run different commands for Drupal and Sculpin projects, <code>versa test<\/code> should support different test frameworks for the same language - e.g. PHPUnit, Pest and ParaTest for PHP - and the commands will need to be different in Docker Compose-based projects.<\/p>\n\n<p>Currently, this logic is within my <a href=\"https:\/\/www.oliverdavies.uk\/build-configs\">Build Configs<\/a> project but can be moved to Versa.<\/p>\n\n<p>This reduces the complexity within that codebase and means I can open-source it as it's a separate project.<\/p>\n\n<p>At the moment, I've added PHP as the only supported language but I will add JavaScript\/TypeScript support so it supports projects like Fractal.<\/p>\n\n<p>It's still in the prototype phase and includes some initial commands, but the interesting parts will be making it clever.<\/p>\n\n<p>Instead of running <code>versa run --type sculpin<\/code>, I'd like to just do <code>versa run<\/code> and have it determine the type of project automatically.<\/p>\n\n<p><code>versa test<\/code> should be able to determine the testing framework automatically based on what's in the project's <code>composer.json<\/code> file instead of having to specify it.<\/p>\n\n<p>Likewise, for JavaScript, <code>versa install<\/code> should be able to determine if <code>npm<\/code>, <code>yarn<\/code> or <code>pnpm<\/code> is used.<\/p>\n\n<p>That'll be where the more complex code will be added and when I start doing test-driven development - maybe with Behat, which is also something I've been thinking about for Build Configs.<\/p>\n\n<p>Interested? <a href=\"https:\/\/github.com\/opdavies\/versa\">Take a look at the code<\/a>.<\/p>\n\n ",
"summary": null
}
],
"feeds_item": [
{
"imported": "2025-04-21T01:21:38+00:00",
"guid": null,
"hash": "58a70b657ecf7c7093121dc7fa471790",
"target_type": "feeds_feed",
"target_uuid": "90c85284-7ca8-4074-9178-97ff8384fe76"
}
]
}