100 lines
No EOL
6.4 KiB
JSON
100 lines
No EOL
6.4 KiB
JSON
{
|
|
"uuid": [
|
|
{
|
|
"value": "10105b0a-c18f-4b77-8ac9-bec3250e37b7"
|
|
}
|
|
],
|
|
"langcode": [
|
|
{
|
|
"value": "en"
|
|
}
|
|
],
|
|
"type": [
|
|
{
|
|
"target_id": "daily_email",
|
|
"target_type": "node_type",
|
|
"target_uuid": "8bde1f2f-eef9-4f2d-ae9c-96921f8193d7"
|
|
}
|
|
],
|
|
"revision_timestamp": [
|
|
{
|
|
"value": "2025-05-11T09:00:44+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": "just vs make\n"
|
|
}
|
|
],
|
|
"created": [
|
|
{
|
|
"value": "2023-04-11T00:00:00+00:00"
|
|
}
|
|
],
|
|
"changed": [
|
|
{
|
|
"value": "2025-05-11T09:00:44+00:00"
|
|
}
|
|
],
|
|
"promote": [
|
|
{
|
|
"value": false
|
|
}
|
|
],
|
|
"sticky": [
|
|
{
|
|
"value": false
|
|
}
|
|
],
|
|
"default_langcode": [
|
|
{
|
|
"value": true
|
|
}
|
|
],
|
|
"revision_translation_affected": [
|
|
{
|
|
"value": true
|
|
}
|
|
],
|
|
"path": [
|
|
{
|
|
"alias": "\/daily\/2023\/04\/11\/just-vs-make",
|
|
"langcode": "en"
|
|
}
|
|
],
|
|
"body": [
|
|
{
|
|
"value": "\n <p><code>just<\/code> compared to <code>make<\/code> is something that was asked during my PHP London talk, and whilst they are similar, <code>just<\/code> has differences for me that explains why I use it:<\/p>\n\n<h2 id=\"tabs-or-spaces\">Tabs or spaces<\/h2>\n\n<p>A Makefile needs to use tabs. Justfiles are more flexible and work with tabs or any number of spaces.<\/p>\n\n<h2 id=\".phony\">.PHONY<\/h2>\n\n<p>With a Makefile, you need to declare some targets as \"phony\". I believe that this is for targets that don't generate artifact files with that name, so as I'm not compiling and building files with <code>make<\/code>, this is redundant and adds visual noise.<\/p>\n\n<h2 id=\"passing-arguments\">Passing arguments<\/h2>\n\n<p>This is how a <code>composer<\/code> target looks like in a Makefile:<\/p>\n\n<pre><code class=\"make\">composer:\n docker compose exec php composer\n<\/code><\/pre>\n\n<p>With this, I'd expect to be able to pass arguments to it - e.g. <code>make composer info drupal\/core<\/code>.<\/p>\n\n<p>But, instead of seeing the expected output, I get an error: <code>make: *** No rule to make target 'info'. \u00a0Stop.<\/code>.<\/p>\n\n<p>This is what I'd need to do to pass arguments to the <code>composer<\/code> target:<\/p>\n\n<pre><code class=\"make\">composer:\n docker compose exec php composer $(COMPOSER_ARGS)\n<\/code><\/pre>\n\n<p>Now I can run <code>make composer COMPOSER_ARGS=\"info drupal\/core\"<\/code> and see what I was expecting but the syntax isn't what I'd want.<\/p>\n\n<p><code>just<\/code>, on the other hand, allows for defining parameters to its recipes:<\/p>\n\n<pre><code class=\"language-yaml\">composer *args:\n\u00a0 docker compose exec php composer \n<\/code><\/pre>\n\n<p>Here, I can create as many named parameters as needed and use them in the recipe with the syntax that I wanted - <code>just composer info drupal\/core<\/code>.<\/p>\n\n<p>I can think of a few others but this is is the main reason why I moved from <code>make<\/code> and later adopted <code>just<\/code>.<\/p>\n\n<p><code>just<\/code>, for me, gives the flexibilty that I need whilst using a simple and familiar syntax but without some of the confusing and complicated behaviours of <code>make<\/code>.<\/p>\n\n ",
|
|
"format": "full_html",
|
|
"processed": "\n <p><code>just<\/code> compared to <code>make<\/code> is something that was asked during my PHP London talk, and whilst they are similar, <code>just<\/code> has differences for me that explains why I use it:<\/p>\n\n<h2 id=\"tabs-or-spaces\">Tabs or spaces<\/h2>\n\n<p>A Makefile needs to use tabs. Justfiles are more flexible and work with tabs or any number of spaces.<\/p>\n\n<h2 id=\".phony\">.PHONY<\/h2>\n\n<p>With a Makefile, you need to declare some targets as \"phony\". I believe that this is for targets that don't generate artifact files with that name, so as I'm not compiling and building files with <code>make<\/code>, this is redundant and adds visual noise.<\/p>\n\n<h2 id=\"passing-arguments\">Passing arguments<\/h2>\n\n<p>This is how a <code>composer<\/code> target looks like in a Makefile:<\/p>\n\n<pre><code class=\"make\">composer:\n docker compose exec php composer\n<\/code><\/pre>\n\n<p>With this, I'd expect to be able to pass arguments to it - e.g. <code>make composer info drupal\/core<\/code>.<\/p>\n\n<p>But, instead of seeing the expected output, I get an error: <code>make: *** No rule to make target 'info'. Stop.<\/code>.<\/p>\n\n<p>This is what I'd need to do to pass arguments to the <code>composer<\/code> target:<\/p>\n\n<pre><code class=\"make\">composer:\n docker compose exec php composer $(COMPOSER_ARGS)\n<\/code><\/pre>\n\n<p>Now I can run <code>make composer COMPOSER_ARGS=\"info drupal\/core\"<\/code> and see what I was expecting but the syntax isn't what I'd want.<\/p>\n\n<p><code>just<\/code>, on the other hand, allows for defining parameters to its recipes:<\/p>\n\n<pre><code class=\"language-yaml\">composer *args:\n docker compose exec php composer \n<\/code><\/pre>\n\n<p>Here, I can create as many named parameters as needed and use them in the recipe with the syntax that I wanted - <code>just composer info drupal\/core<\/code>.<\/p>\n\n<p>I can think of a few others but this is is the main reason why I moved from <code>make<\/code> and later adopted <code>just<\/code>.<\/p>\n\n<p><code>just<\/code>, for me, gives the flexibilty that I need whilst using a simple and familiar syntax but without some of the confusing and complicated behaviours of <code>make<\/code>.<\/p>\n\n ",
|
|
"summary": null
|
|
}
|
|
],
|
|
"feeds_item": [
|
|
{
|
|
"imported": "2025-05-11T09:00:44+00:00",
|
|
"guid": null,
|
|
"hash": "0747677b2ea7269056a31e78221a91aa",
|
|
"target_type": "feeds_feed",
|
|
"target_uuid": "90c85284-7ca8-4074-9178-97ff8384fe76"
|
|
}
|
|
]
|
|
} |