by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Jan 14 2019 21:30

    makkus on develop

    Typo (compare)

  • Jan 14 2019 21:19

    makkus on develop

    Refactoring: switch 'frecklet' … (compare)

  • Jan 07 2019 14:37

    makkus on develop

    Updated frecklets Minor (compare)

  • Jan 06 2019 19:37

    makkus on develop

    Pytest version Pytest version (compare)

  • Jan 06 2019 19:17

    makkus on develop

    Cleanup cnf template Work on templating. (compare)

  • Jan 05 2019 22:19

    makkus on develop

    documentation (compare)

  • Jan 04 2019 17:04

    makkus on develop

    Fixed manifest (compare)

  • Jan 04 2019 15:25

    makkus on develop

    Updated frecklets (compare)

  • Jan 04 2019 14:39

    makkus on develop

    Added documentation. Auto-doc html template. Auto-doc markdown template. and 4 more (compare)

  • Dec 21 2018 12:48

    makkus on develop

    Formatting (compare)

  • Dec 21 2018 12:43

    makkus on develop

    Unlock config command. (compare)

  • Dec 20 2018 22:23

    makkus on develop

    bumpversion config (compare)

  • Dec 20 2018 18:39

    makkus on develop

    bumpversion (compare)

  • Dec 20 2018 18:04

    makkus on develop

    dependencies. Set version to 1.0.0-beta1 (compare)

  • Dec 20 2018 17:11

    makkus on develop

    Updated dependencies. (compare)

  • Dec 20 2018 16:24

    makkus on develop

    Renamed: connector -> adapter (compare)

  • Dec 20 2018 11:43

    makkus on develop

    Formatting (compare)

  • Dec 20 2018 11:40

    makkus on develop

    Also inherit 'msg' if necessary. Minor (compare)

  • Dec 19 2018 23:24

    makkus on develop

    Tests. Requirements for dev. Consolidated doc related method… and 6 more (compare)

  • Dec 19 2018 16:29

    makkus on develop

    Removed old code. (compare)

Markus Binsteiner
@makkus
The one thing that'll change a bit is how cli args are specified, as I want to better enable to provide files that contain vars at execution time, like frecklecute --vars <vars_file_or_json_string> xxx, which can be used as 'seed'/defaults if the user doesn't specify a value.
Also, I'm wondering whether I should allow to specify extra context repos (containing roles etc) in the frecklecutable, so users don't have to put them on the commandline. That way a frecklecutable would really be self-contained.
Worry a bit about the security implications though.
Although, I guess if you trust somebody enough to use their frecklecutable, you might also trust them to specify a trustworthy context repo.
Markus Binsteiner
@makkus
BTW, I've added a bit of code to make 'debug' module output prettier (next version), it displays the msg/var value now. Not sure if that's similar to what you had in mind with your custom action module.
Anyway, thanks for your feedback!
Laurent
@lalmeras
I think that allowing repos inside frecklecutables is the same that providing it on command line for security concern ; if this is not a feature, people would just copy -r gh:... from online README. If you really want to address it, I think that a good solution would be to add a frecklecutables configuration (~/.config/freckles/freckles.yml ?) named allow_untrusted_repos: <bool> and a frecklecutable arg to override it (--allow-untrusted-repos/--no-allow-untrusted-repos)
the hard part will be to normalize repository name (with/without version consideration, from galaxy, from github) to determine if repo is already a trusted repository ; I don't know if this is already done or not ?
Laurent
@lalmeras
last part, is it usefull to allow frecklecutables dependencies : this is something I think would be usefull to allow a dependant frecklecutables to be used in a frecklecutable's task list. But I think this is a difficult feature to implement (as it needs to bind frecklecutable arguments to task variable, that just launching dependent frecklecutable as a command is not consistent with a task/role play, and integrate frecklecutable play inside another play is likely to be a tricky thing). Don't know if you already think about that ?
@makkus on cli arguments, I tried to use flag arguments ('--option/--no-option') and it seems to me that it is not possible for the moment and would be a nice addition
adding click prompt args also ?
Laurent
@lalmeras
using a format that allow a better interaction with click would be nice as click have really nice feature, but maybe you want not to be too dependent on click ?
Markus Binsteiner
@makkus
Yes, that was one of the main reasons for creating luci.
I don't want to be too dependent on luci, but I want to use all potential features of it too.
So, the format of specifying vars will change a bit, with a 'default' section for 'normal' use (which in the future might also be used to verify external vars that come in via a file or such) and which can be specified very quickly, e.g.
vars: 
    - key1
    - key2
which would just create 2 options named '--key1' and '--key2', which would take string arguments
Markus Binsteiner
@makkus
if one wanted to be more fancy, they can do that by providing more metadata (e.g. required, default). Those would be generic. And if that still isn't enough, there'd be a section to use (hopefully all) click arguments directly. That way I can keep the format easy to read for most cases, and if people want to get fancy they can.
I haven't tried the option/no-option thing yet, but that should work in the future.
Click prompts too.
I had similar thoughts than you on the trusted repo issue. Not 100% sure yet how I'll solve that. But probably something similar along the lines you suggested.
And about the dependent frecklecutables: I haven't had the need yet, but I can see how that would be nice.
Haven't thought this through, but do you reckon it could somehow be implemented via templating. For example, something like:
tasks:
    - task1
    - import: frecklecutable
           var-mapping:
               orig_var: remote_var
Markus Binsteiner
@makkus
That would just put the contents of the remote frecklecutable in place where the import statement is, using the var-mapping to optionally do some initial templating.
Technically, something like this would probably be easiest.
The var mapping might be a problem though.
Laurent
@lalmeras
Hi Makkus, how are you ?
Been a long time (lot of work on my side). I keep using (happily) frecklecute for desktop install, and I see you start your big refactor on freckelize. As it appears to be a breaking change (as planned), when do you think it'll be stable enough (stable as sufficiently working, not as stable API/config format) to experiment with it ?
Markus Binsteiner
@makkus
Hi Laurent, good to hear from you!
I reckon it'll be another two or three weeks, it's really almost a complete rewrite.
Two or three weeks to start playing around with it, that is.
Need to document the new format as well, but I hope it's going to be intuitive enough to not need too much explanation.
It's going to be much more modular, so you can include tasklists in other tasklists. That was your suggestion, if I recall right...
Also, I moved the project to Gitlab (will probably keep a mirror on Github though).
Haven't published my changes yet though.
Laurent
@lalmeras
Yes, it was something I propose as a new feature ; I hope it is not too painful to implement this
If you think I can provide some helpful contribution, do not hesitate. I think you know some of my skills.
Markus Binsteiner
@makkus
Oh, it was plenty painful to implement :-)
But it was part of a large redesign, I wanted to get rid of a few hotspots of complexity, and make the code more elegant.
That feature fit right into this work.
Thanks for your offer, I will definitely get back to you once there is something worthwhile to show.
Laurent
@lalmeras
fine, do not hesitate if you find any subject where I can help
Laurent
@lalmeras
this time I have a use-case to use freckelize ; we use a small python library that allow to write launcher for our ansible / sphinx projects. This library install needed virtualenv and provide custom launchers (with click) for our tasks (basically automatically add ANSIBLE_CONFIG environment, bind custom command line arguments to ansible extra vars, deploy documentation after sphinx build, ...). First I want to replace my bootstrap.sh by a freckelize prerequisite ; then I'll see if I rework virtualenv install part to use freckelize or if I keep this in my library
Markus Binsteiner
@makkus
I'm not 100% sure I understand the requirements exactly, but that sounds definitely doable and easy, especially after the rewrite.
It'll be possible to use the same frecklecutables in both frecklecute as well as freckelize. So, you could for example write custom frecklecutables to do the sphinx build, deploy the docs, do the testing. A dev could run those separately. And you can re-use them in a custom freckelize adapter for your project type.
Kinda hard to explain without code examples, but I'll ping you as soon as I have something. If you want, you could write up your use-case in a bit more detail. Would be helpful for me to understand and think about how/whether it's a good fit.
Laurent
@lalmeras
Sure I think it's doable ; it was just to outline this time I have some use-case to try, test and provide feedback. The first time, I only tested frecklecute as I have nothing to do with freckelize.
And sure, I'll just work on my freckelize once you consider the application ready for testing ; and I'll happily provide my feedbacks.
Markus Binsteiner
@makkus
Cool, thanks again!
Markus Binsteiner
@makkus
Thanks, yes, I've read about it just yesterday.