Skip to content

Create a devcontainer for working on the repo#744

Open
m-dango wants to merge 6 commits into
exercism:mainfrom
m-dango:devcontainer
Open

Create a devcontainer for working on the repo#744
m-dango wants to merge 6 commits into
exercism:mainfrom
m-dango:devcontainer

Conversation

@m-dango

@m-dango m-dango commented Jul 16, 2026

Copy link
Copy Markdown
Member

No description provided.

@m-dango
m-dango requested a review from kotp July 16, 2026 21:39
Comment thread mise.toml Outdated
@@ -0,0 +1,17 @@
[tools.perl]
version = "latest"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Why latest and not stable?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

The releases are only for stable versions: https://github.com/skaji/relocatable-perl

With tools like mise and asdf, latest typically means latest stable:
https://asdf-vm.com/manage/versions.html#install-latest-stable-version

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Pinning it by explicit stable version means that we do not get a surprise version dump and whatever that brings, but will later purposefully move the version to the newer version.

Pinning it means that the upgrade happens when we mean for it to happen, rather than incidentally happening outside of our control, and testing.

Comment thread mise.toml Outdated
bin/exercise-gen.pl ${usage_slug?}
'''

[tasks.test-practice-example]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should we have a task testing all exercises?

Comment thread mise.toml Outdated
bin/exercise-gen.pl ${usage_slug?}
'''

[tasks.test-practice-example]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Also, hard to remember "example" as opposed to "exercise".

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Would it make sense to name the tasks so that it is mise test-exercise two-fer for example? And have it not necessarily need to distinguish from concept and practice.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I may just remove the task. Since the command is just a shortcut to prove I don't think it gives much value.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The benefit of mise-en-place is similar to that of Make and others, in that you have potential of "menu" items where things are documented for use by the tool itself.

For those that may not have the tool, they can still look at the tasks to see how to run those commands, and in one place. So there is that value as well.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Also, since it is a task that went away, it is likely that I will have a mise.local.toml file that puts those things in place anyway, ignored and untracked in the repository itself, but so that there is a suite of tooling that is consistent with the generate task.

Otherwise, then, does it make sense to introduce mise-en-place if it is only going to be used for the limited purpose. The generate can be done using the scripts in bin anyway, and it seems to be documented well enough, otherwise.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I am approving since the current mise configuration is for the devcontainer, and can incidentally be used directly by the maintainer/contributor, but the focus is on the devcontainer use.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I've added a test task. It does the practice exercises and generator tests, but need to do some tweaks to include testing concepts.

I may add some arguments later on.

@kotp

kotp commented Jul 19, 2026

Copy link
Copy Markdown
Member

@BNAndras I had to install the Readonly module on my machine in order to get Yacht tests to pass. Is it something presumed in the environment you are building, but should be listed explicitly? Perhaps ensured for Yacht?

@kotp

kotp commented Jul 19, 2026

Copy link
Copy Markdown
Member

@BNAndras I had to install the Readonly module on my machine in order to get Yacht tests to pass. Is it something presumed in the environment you are building, but should be listed explicitly? Perhaps ensured for Yacht?

n.b.: I do see https://metacpan.org/pod/Readonly#Requirements that seems to indicate contrarily. But I was surprised to see that the mise test was failing, even though it updated to the specific version of Perl5 that this change indicates.

@m-dango

m-dango commented Jul 19, 2026

Copy link
Copy Markdown
Member Author

I've added Readonly to the main cpanfile, and switched the test harness from prove to yath.

@BNAndras

Copy link
Copy Markdown
Member

@glennj added that exercise, not me. I don’t speak Perl. :)

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.

3 participants