diff options
Diffstat (limited to 'doc/todo')
11 files changed, 227 insertions, 0 deletions
diff --git a/doc/todo/License_in_propellor.cabal.mdwn b/doc/todo/License_in_propellor.cabal.mdwn new file mode 100644 index 00000000..90a0e8f8 --- /dev/null +++ b/doc/todo/License_in_propellor.cabal.mdwn @@ -0,0 +1,3 @@ +`propellor.cabal` claims that propellor is licensed under the 3-clause BSD license. `debian/copyright` says it's licensed under the 2-clause BSD license. Which is correct? An ftp-master noticed. Thanks. --spwhitton + +> [[fixed|done]] --[[Joey]] diff --git a/doc/todo/License_in_propellor.cabal/comment_1_3009093e2ab7bcf9e60555da71796a63._comment b/doc/todo/License_in_propellor.cabal/comment_1_3009093e2ab7bcf9e60555da71796a63._comment new file mode 100644 index 00000000..3ea7af89 --- /dev/null +++ b/doc/todo/License_in_propellor.cabal/comment_1_3009093e2ab7bcf9e60555da71796a63._comment @@ -0,0 +1,10 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 1""" + date="2016-05-10T16:06:12Z" + content=""" +It's 2-clause, see LICENSE. + +Cabal file license fields are too restricted syntax to be more than +a general indication of license in general I think. +"""]] diff --git a/doc/todo/merge_request:_Propellor.Property.Sbuild.mdwn b/doc/todo/merge_request:_Propellor.Property.Sbuild.mdwn new file mode 100644 index 00000000..3156fdb4 --- /dev/null +++ b/doc/todo/merge_request:_Propellor.Property.Sbuild.mdwn @@ -0,0 +1,18 @@ +Please consider merging branch `sbuild` of repository `https://git.spwhitton.name/propellor`. + +This branch adds the following features: + +- A new module `Propellor.Property.Sbuild` with properties for configuring sbuild schroots +- A new module `Propellor.Property.Schroot` with a property supporting those in `Propellor.Property.Sbuild` +- A new module `Propellor.Property.Ccache` with a property supporting those in `Propellor.Property.Sbuild` +- An export of `extractSuite` from `Propellor.Property.Debootstrap`, used in `Propellor.Property.Sbuild` +- Two new types of iptables matching rules in `Propellor.Property.Firewall`. + +The additions to `Propellor.Property.Firewall` were made to support `Sbuild.blockNetwork`, which is a hack from the Debian Wiki which doesn't seem to work with the latest version of sbuild. I left the additions to `Propellor.Property.Firewall` in my branch since they are probably independently useful. I left the `blockNetwork` property commented-out in `Sbuild.hs` in case I or someone else can make it work at a later date. + +I get the following strange warning from GHC thanks to my new export from `Propellor.Property.Debootstrap`. I can't figure out the problem and would be grateful for help. + + src/Propellor/Property/Debootstrap.hs:8:9: Warning: + `extractSuite' is exported by `extractSuite' and `extractSuite' + +--spwhitton diff --git a/doc/todo/merge_request:_Propellor.Property.Sbuild/comment_1_b3343283b2d7d49ab70a95d762d0e081._comment b/doc/todo/merge_request:_Propellor.Property.Sbuild/comment_1_b3343283b2d7d49ab70a95d762d0e081._comment new file mode 100644 index 00000000..89583ffc --- /dev/null +++ b/doc/todo/merge_request:_Propellor.Property.Sbuild/comment_1_b3343283b2d7d49ab70a95d762d0e081._comment @@ -0,0 +1,25 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 1""" + date="2016-05-21T17:41:11Z" + content=""" +Re not running propellor in the sbuild chroot, I have in the past used +schroot for things where it would have made sense to run propellor +in the chroot. OTOH, systemd-container is a better fit for such uses cases +now, probably. + +Is the ~/.sbuildrc necessary to use the sbuild properties? If so, +would it make sense to have a property that configures it? + +You could use Utility.DataUnits for Ccache's MaxSize. This would be +more flexible and consistent with other things in propellor. + +Limit could be a monoid. This would perhaps simplify hasGroupCache +as it could only be used once to set multiple limits. + +Maybe instead of Ccache.hasGroupCache, call it Ccache.hasCache? + +That is a weird build warning! But, I don't see it with ghc 7.10.3. +Normally you'd see that warning when the module's export list exported the same +symbol twice. +"""]] diff --git a/doc/todo/merge_request:_Propellor.Property.Sbuild/comment_2_d8afe7b1fd49df5794c9abf2be732f8b._comment b/doc/todo/merge_request:_Propellor.Property.Sbuild/comment_2_d8afe7b1fd49df5794c9abf2be732f8b._comment new file mode 100644 index 00000000..44a2a542 --- /dev/null +++ b/doc/todo/merge_request:_Propellor.Property.Sbuild/comment_2_d8afe7b1fd49df5794c9abf2be732f8b._comment @@ -0,0 +1,58 @@ +[[!comment format=mdwn + username="spwhitton" + subject="comment 2" + date="2016-05-22T01:48:27Z" + content=""" +Thanks for your feedback. + +> Re not running propellor in the sbuild chroot, I have in the past used +> schroot for things where it would have made sense to run propellor in +> the chroot. OTOH, systemd-container is a better fit for such uses +> cases now, probably. + +I was thinking that if someone wanted to use a schroot and run +propellor in it, useful properties could be appended to +`Propellor.Property.Schroot`. As far as types go, I think that the +types in `Propellor.Property.Chroot` would be sufficient. + +> Is the ~/.sbuildrc necessary to use the sbuild properties? If so, +> would it make sense to have a property that configures it? + +The only probably which *needs* the suggested ~/.sbuildrc is +`Sbuild.piupartsConfFor`. With the other properties and no +~/.sbuildrc, you should be able to go ahead and use sbuild(1) to +perform a clean build. + +I don't think there is a way to write a non-intrusive property to add +anything to a user's ~/.sbuildrc. That's because they will probably +have different preferences for the options to pass to piuparts than I +give in the example, and we would have to merge the adt-run code with +any existing post-build-commands. I'm not sure propellor should have +a perl config file parser. + +> You could use Utility.DataUnits for Ccache's MaxSize. This would be +> more flexible and consistent with other things in propellor. + +Done. + +> Limit could be a monoid. This would perhaps simplify hasGroupCache as +> it could only be used once to set multiple limits. + +Done. + +> Maybe instead of Ccache.hasGroupCache, call it Ccache.hasCache? + +Done, I think that's better. I was originally thinking that the name +`Ccache.hasCache` might be for a property `User -> Property +DebianLike`. However, if someone wanted to write a property configuring +a user cache, it would probably have the standard location +`~/.ccache`. This cache would be implicitly created when required, so +the name `Ccache.hasCache` would be needed. + +> That is a weird build warning! But, I don't see it with ghc +> 7.10.3. Normally you'd see that warning when the module's export list +> exported the same symbol twice. + +I'm on GHC 7.10.3, too... + +"""]] diff --git a/doc/todo/merge_request:_Propellor.Property.Sbuild/comment_3_679468488a88f0a3f28ea0be548691a0._comment b/doc/todo/merge_request:_Propellor.Property.Sbuild/comment_3_679468488a88f0a3f28ea0be548691a0._comment new file mode 100644 index 00000000..7d5da612 --- /dev/null +++ b/doc/todo/merge_request:_Propellor.Property.Sbuild/comment_3_679468488a88f0a3f28ea0be548691a0._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 1""" + date="2016-05-22T17:53:42Z" + content=""" +Would it make sense to move the ~/.sbuildrc example into the documentation +for the property that uses it? +"""]] diff --git a/doc/todo/propellor_--init_option_B_failure.mdwn b/doc/todo/propellor_--init_option_B_failure.mdwn new file mode 100644 index 00000000..f706cba6 --- /dev/null +++ b/doc/todo/propellor_--init_option_B_failure.mdwn @@ -0,0 +1,41 @@ +[[!tag user/spwhitton]] + +With 3.0.1, 3.0.2 or 3.0.3: + + artemis ~ % propellor --init + + + _ ______`| ,-.__ + .--------------------------- / \___-=O`/|O`/__| (____.' + - Welcome to -- \ / | / ) _.-'-._ + - Propellor! -- `/-==__ _/__|/__=-| ( \_ + `--------------------------- * \ | | '--------' + (o) ` + + + Propellor's configuration file is ~/.propellor/config.hs + + Let's get you started with a simple config that you can adapt + to your needs. You can start with: + A: A clone of propellor's git repository (most flexible) + B: The bare minimum files to use propellor (most simple) + Which would you prefer? [A|B] B + Initialized empty Git repository in /home/swhitton/.propellor/.git/ + Creating minimal config ... done + + ------------------------------------------------------------------------------ + + Let's try building the propellor configuration, to make sure it will work... + + Writing a default package environment file to + /home/swhitton/.propellor/cabal.sandbox.config + Creating a new sandbox at /home/swhitton/.propellor/.cabal-sandbox + Resolving dependencies... + Configuring config-0... + cabal: At least the following dependencies are missing: + propellor >=3.0 + propellor: failed to make dist/setup-config + +(propellor installed from Debian) + +: This is in the NEW queue. [[done]] --spwhitton diff --git a/doc/todo/propellor_--init_option_B_failure/comment_1_f2229a499f4be0e64d030e2ecc0927f6._comment b/doc/todo/propellor_--init_option_B_failure/comment_1_f2229a499f4be0e64d030e2ecc0927f6._comment new file mode 100644 index 00000000..e9edb435 --- /dev/null +++ b/doc/todo/propellor_--init_option_B_failure/comment_1_f2229a499f4be0e64d030e2ecc0927f6._comment @@ -0,0 +1,16 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 1""" + date="2016-05-02T12:03:24Z" + content=""" +You need to update the Debian package to include the propellor +haskell library in binary form. I had not included the haskell library in +the package before in binary form, because I was targeting only option A, +where it's cloned from the git archive in the package. + +Any other installation method than the debian package that I know of +installs both the propellor command and the propellor haskell library. + +(Note that propellor 3.0.1^W3.0.3 fixes an unrelated bug that prevented option B +from working.) +"""]] diff --git a/doc/todo/spin_without_remote_compilation/comment_3_3b1053891d1bd9c424f1b517a4686e5d._comment b/doc/todo/spin_without_remote_compilation/comment_3_3b1053891d1bd9c424f1b517a4686e5d._comment new file mode 100644 index 00000000..096d20aa --- /dev/null +++ b/doc/todo/spin_without_remote_compilation/comment_3_3b1053891d1bd9c424f1b517a4686e5d._comment @@ -0,0 +1,7 @@ +[[!comment format=mdwn + username="spwhitton" + subject="comment 3" + date="2016-05-14T01:37:11Z" + content=""" +This feature has become more poignant with propellor v3's increased memory requirements. +"""]] diff --git a/doc/todo/spin_without_remote_compilation/comment_4_0e98f5ea8af2e14ead239e5b777afb26._comment b/doc/todo/spin_without_remote_compilation/comment_4_0e98f5ea8af2e14ead239e5b777afb26._comment new file mode 100644 index 00000000..28307a2d --- /dev/null +++ b/doc/todo/spin_without_remote_compilation/comment_4_0e98f5ea8af2e14ead239e5b777afb26._comment @@ -0,0 +1,14 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 4""" + date="2016-05-21T17:06:37Z" + content=""" +There's a patch implementing this now, in: + + https://git.gueux.org/propellor.git precompiled + +I have not found the increased memory too onerous, it's still working +down to 500 mb cheap VMs. So I'm looking for details about cases where +it causes ghc to use too much memory. +<http://propellor.branchable.com/forum/recent_propellor_snapshots_cause_ghc_OOMs/> +"""]] diff --git a/doc/todo/use_ghc_8.0_custom_compile_errors.mdwn b/doc/todo/use_ghc_8.0_custom_compile_errors.mdwn new file mode 100644 index 00000000..7eed443a --- /dev/null +++ b/doc/todo/use_ghc_8.0_custom_compile_errors.mdwn @@ -0,0 +1,27 @@ +<https://downloads.haskell.org/~ghc/8.0.1/docs/html/users_guide/glasgow_exts.html#custom-errors> + +This could be used in propellor to improve compile time errors. + +For example, a RevertableProperty is sometimes used where only a regular +Property is accepted. In this case, the error could suggest that the user +apply `setupRevertableProperty` to extract the setup side of the RevertableProperty. + +And, when a Property HasInfo is provided to ensureProperty, propellor could +explain, in the compile error, why it can't let the user do that. + +Custom errors need a type class to be used. So, could do something like this: + + class NeedsProperty a where + withProperty :: (Property metatype -> b) -> b + + instance NeedsProperty (Property metatype) where withProperty = id + + instance TypeError (Text "Use setupRevertableProperty ...") + => NeedsProperty RevertableProperty where + withProperty = error "unreachable" + +(While propellor needs to be buildable with older versions of ghc, +the `instance TypeError` can just be wrapped in an ifdef to make it only be +used by the new ghc.) + +[[!tag user/joey]] |