Changelog truncating body text

Describe the bug
Changelog missing parts of the body
To reproduce
In ratatui at the current head (301366c4fa33524b0634bbd3dcf1abd1a1ebe7c6)
git cliff -u

Expected behavior
Full message for https://github.com/ratatui-org/ratatui/commit/32e461953c8c9231edeef65c410b295916f26f3e is in the changelog, but this message gets truncated
Screenshots / Logs
Expected:

Actual:

Software information

Operating system: Mac
Rust version: 1.72.1
Project version: git-cliff 1.3.0

Additional context

It is because that part of the commit body is parsed as footer:
      {
        "id": "32e461953c8c9231edeef65c410b295916f26f3e",
        "message": "allow custom symbols for borders ([#529](https://github.com/ratatui-org/ratatui/issues/529))",
        "body": "Adds a new `Block::border_set` method that allows the user to specify\r\nthe symbols used for the border.\r\n\r\nAdded two new border types: `BorderType::QuadrantOutside` and\r\n`BorderType::QuadrantInside`. These are used to draw borders using the\r\nunicode quadrant characters (which look like half block \"pixels\").",
        "footers": [
          {
            "token": "QuadrantOutside",
            "separator": ":",
            "value": "```\r\n▛▀▀▜\r\n▌  ▐\r\n▙▄▄▟\r\n```",
            "breaking": false
          },
          {
            "token": "QuadrantInside",
            "separator": ":",
            "value": "```\r\n▗▄▄▖\r\n▐  ▌\r\n▝▀▀▘\r\n```",
            "breaking": false
          },
          {
            "token": "Fixes",
            "separator": ":",
            "value": "https://github.com/ratatui-org/ratatui/issues/528\r\n\r\nBREAKING CHANGES:\r\n- BorderType::to_line_set is renamed to to_border_set\r\n- BorderType::line_symbols is renamed to border_symbols",
            "breaking": false
          }
        ],
        "group": "<!-- 00 -->Features",
        "breaking_description": "allow custom symbols for borders ([#529](https://github.com/ratatui-org/ratatui/issues/529))",
        "breaking": true,
        "scope": "block",
        "links": [],
        "author": {
          "name": "Josh McKinney",
          "email"<EMAIL_ADDRESS>          "timestamp":<PHONE_NUMBER>
        },
        "committer": {
          "name": "GitHub",
          "email"<EMAIL_ADDRESS>          "timestamp":<PHONE_NUMBER>
        },
        "conventional": true
      },

To use the footers in the changelog:
{% for footer in commit.footers -%}
  {{ footer.token }}{{ footer.separator }} {{ footer.value }}\
{% endfor %}

We can possibly do something like this:
{% for footer in commit.footers -%}
  {{ footer.token }}{{ footer.separator }}
{{ footer.value }}
{% endfor %}

But then the indentation is off in the changelog:
- [32e4619](https://github.com/ratatui-org/ratatui/commit/32e461953c8c9231edeef65c410b295916f26f3e)
  *(block)* Allow custom symbols for borders ([#529](https://github.com/ratatui-org/ratatui/issues/529)) [**breaking**]

  ````text
  Adds a new `Block::border_set` method that allows the user to specify
  the symbols used for the border.

  Added two new border types: `BorderType::QuadrantOutside` and
  `BorderType::QuadrantInside`. These are used to draw borders using the
  unicode quadrant characters (which look like half block "pixels").
QuadrantOutside:
````
▛▀▀▜
▌  ▐
▙▄▄▟
```
QuadrantInside:
```
▗▄▄▖
▐  ▌
▝▀▀▘
```
Fixes:
https://github.com/ratatui-org/ratatui/issues/528

BREAKING CHANGES:
- BorderType::to_line_set is renamed to to_border_set
- BorderType::line_symbols is renamed to border_symbols

  ````

Got it. I wasn't aware of those being interpreted as a footer. TIL.

Do you think we can use the footer for the changelog or is there anything else needed on git-cliff side?

I'll experiment and get back to you. Probably will be fine.

Hey, is this still an issue?

🐻

This fixes the specific config file we have in Ratatui, and addresses the issue with the indent.
diff --git a/cliff.toml b/cliff.toml
index f3d44d58..e387d4c4 100644
--- a/cliff.toml
+++ b/cliff.toml
@@ -30,6 +30,13 @@ body = """
   {{commit.body | indent(prefix="  ") }}
   ````
 {%- endif %}
+{%- for footer in commit.footers %}
+{%- if footer.token != "Signed-off-by" and footer.token != "Co-authored-by" %}
+
+  {{ footer.token | indent(prefix="  ") }}{{ footer.separator }}
+  {{ footer.value | indent(prefix="  ") }}
+{%- endif %}
+{%- endfor %}
 {% endmacro -%}

 {% for group, commits in commits | group_by(attribute="group") %}

The following is the output of git-cliff -u -o CHANGELOG.md compared before and after this change.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8f0082ca..1028e066 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -172,6 +172,10 @@ All notable changes to this project will be documented in this file.
   - Adds missing docs
   ````

+  BREAKING CHANGE:
+  `Line::style` is now a field of `Line` instead of being
+  stored in each `Span`.
+
 - [bbf2f90](https://github.com/ratatui-org/ratatui/commit/bbf2f906fbe7e593fdeb5dd7530d3479788f77a5)
   *(rect.rs)* Implement Rows and Columns iterators in Rect ([#765](https://github.com/ratatui-org/ratatui/issues/765))

@@ -261,6 +265,12 @@ All notable changes to this project will be documented in this file.
   now accepts `IntoIterator<Item: Into<Row>>`.
   ````

+  BREAKING CHANGE:
+  The compiler can no longer infer the element type of the container
+  passed to `Table::new()`.  For example, `Table::new(vec![], widths)`
+  will no longer compile, as the type of `vec![]` can no longer be
+  inferred.
+
 - [2faa879](https://github.com/ratatui-org/ratatui/commit/2faa879658a439d233edc4ac886fb42c17ff971a)
   *(table)* Accept Text for highlight_symbol ([#781](https://github.com/ratatui-org/ratatui/issues/781))

@@ -323,6 +333,15 @@ All notable changes to this project will be documented in this file.
   implementing `Into<Line>`.
   ````

+  BREAKING CHANGE:
+  Calls to `Tabs::new()` whose argument is collected from an iterator
+  will no longer compile.  For example,
+
+  `Tabs:
+  :new(["a","b"].into_iter().collect())` will no longer compile,
+  because the return type of `.collect()` can no longer be inferred to
+  be a `Vec<_>`.
+
 - [b459228](https://github.com/ratatui-org/ratatui/commit/b459228e26b9429b8a09084d76251361f7f5bfd3)
   *(termwiz)* Add `From` termwiz style impls ([#726](https://github.com/ratatui-org/ratatui/issues/726))

@@ -380,6 +399,9 @@ All notable changes to this project will be documented in this file.
   test it visually, shared below:
   ````

+  https:
+  //github.com/ratatui-org/ratatui/assets/1813121/c8716c59-493f-4631-add5-feecf4bd4e06
+
 - [9a3815b](https://github.com/ratatui-org/ratatui/commit/9a3815b66d8b6e4ff9f6475666f5742701e256bb)
   *(uncategorized)* Add Constraint::Fixed and Constraint::Proportional ✨ ([#783](https://github.com/ratatui-org/ratatui/issues/783))

@@ -407,6 +429,30 @@ All notable changes to this project will be documented in this file.
   // can now be simplified to
   ````

+  Line:
+  :styled("hello", Color::Red);
+
+  Line:
+  :styled("world", Modifier::BOLD);
+  ```
+
+  Fixes https://github.com/ratatui-org/ratatui/issues/694
+
+  BREAKING CHANGE:
+  All style related methods now accept `S: Into<Style>`
+  instead of `Style`. This means that if you are already passing an
+  ambiguous type that implements `Into<Style>` you will need to remove
+  the `.into()` call.
+
+  `Block` style methods can no longer be called from a const context as
+  trait functions cannot (yet) be const.
+
+  * feat: add tuple conversions to Style
+
+  Adds conversions for various Color and Modifier combinations
+
+  * chore: add unit tests
+
 ### Bug Fixes

 - [ee54493](https://github.com/ratatui-org/ratatui/commit/ee544931633ada25d84daa95e4e3a0b17801cb8b)
@@ -450,6 +496,14 @@ All notable changes to this project will be documented in this file.
   manually.
   ````

+  BREAKING CHANGE:
+  The default() implementation of Table now sets the
+  column_spacing field to 1 and the segment_size field to
+
+  SegmentSize:
+  :None. This will affect the rendering of a small amount of
+  apps.
+
 - [b0ed658](https://github.com/ratatui-org/ratatui/commit/b0ed658970e8a94f25948c80d511102c197a8f6a)
   *(table)* Render missing widths as equal ([#710](https://github.com/ratatui-org/ratatui/issues/710))

@@ -459,6 +513,9 @@ All notable changes to this project will be documented in this file.
   behaviour to default to equal widths for each column.
   ````

+  Fixes #
+  510.
+
 - [f2eab71](https://github.com/ratatui-org/ratatui/commit/f2eab71ccf11a206c253bf4efeafc744f103b116)
   *(uncategorized)* Broken tests in table.rs ([#784](https://github.com/ratatui-org/ratatui/issues/784))

@@ -476,6 +533,9 @@ All notable changes to this project will be documented in this file.
 - [bc274e2](https://github.com/ratatui-org/ratatui/commit/bc274e2bd9cfee1133dfbcca3c95374560706537)
   *(block)* Remove deprecated `title_on_bottom` ([#757](https://github.com/ratatui-org/ratatui/issues/757)) [**breaking**]

+  `Block:
+  :title_on_bottom` was deprecated in v0.22. Use `Block::title` and `Title::position` instead.
+
 - [a62632a](https://github.com/ratatui-org/ratatui/commit/a62632a947a950f7ab303e67eb910b01f4ee256d)
   *(buffer)* Split buffer module into files ([#721](https://github.com/ratatui-org/ratatui/issues/721))

@@ -621,6 +681,12 @@ All notable changes to this project will be documented in this file.
 - [fab943b](https://github.com/ratatui-org/ratatui/commit/fab943b61afb1c5f79d03b1f3764067ac26945d0)
   *(contributing)* Add deprecation notice guideline ([#761](https://github.com/ratatui-org/ratatui/issues/761))

+- [1ed9503](https://github.com/ratatui-org/ratatui/commit/1ed950330e0bf3550fcb900a86f9bb20cb1035db)
+  *(uncategorized)* Add commit footers to git-cliff config
+
+  Fixes:
+  https://github.com/orhun/git-cliff/issues/297
+
 - [c24216c](https://github.com/ratatui-org/ratatui/commit/c24216cf307bba7d19ed579a10ef541e28dfd4bc)
   *(uncategorized)* Add comment on PRs with unsigned commits ([#768](https://github.com/ratatui-org/ratatui/issues/768))


Add ToMap example to ExamplesFactory

Add a new interface method to ExamplesFactory:
ToMap toMap();

Add a new implementation to DefaultExamplesFactory. See doc for some examples of using the ToMap operation.
Hook the example up in the DefaultExamplesFactory.generateExample method, i.e. add a new if block for:
else if (operation instanceof ToMap) {
    return toMap();
}

Merged into develop.


Add LICENSE file

I haven't been able to find any licensing information on the main site or in the repo.
My company is looking at forum software at the moment and as a django-based company, we'd be happy to contribute with pull requests, but we first need to ensure that we are allowed to clone/fork this code and use it in a commercial setting.
Could you please add a LICENSE file with the common license of your choosing? Thanks

Just one note that I forgot to mention.  If you use punkweb-boards please don't hesitate to use our official forums as a means of communicating issues, questions, suggestions, feedback, or your general experience using it, whether it's a good or bad experience.  I'd love to hear any feedback.

Noted. And thank you very much!


Memory leak under Windows

This is after applying this PR: https://github.com/sctplab/usrsctp/pull/48
I'm not really familiar with Windows, so I could be doing something wrong, but it appears there may be leaks some place else.
The Windows UMDH utility seems to point to some suspicious parts in sctp_init_ifns_for_vrf():
https://github.com/sctplab/usrsctp/blob/master/usrsctplib/netinet/sctp_bsd_addr.c#L356-L362 and
https://github.com/sctplab/usrsctp/blob/master/usrsctplib/netinet/sctp_bsd_addr.c#L404-L409.
Here's the UMDH log from the test program I used:
stackdiff.txt

OK. Can you retest with the current code? If the problem persists, could you share your test program?

Аnd I am on windows with msys2. I cant find netinet6 with headers files. What is the name of such library for netinet6?

I guess the files are in
https://github.com/sctplab/usrsctp/tree/master/usrsctplib/netinet6
You should be able to build the userland stack with nmake or cmake.

OK, found the test program. Wasn't reading the screenshot... We will test it.

I added a simple test program test_libmgmt.c and it doesn't show any leaks on Linux. We will test it on Windows next week.
Please note that you must use
while (usrsctp_finish() != 0) {
#ifdef _WIN32
	Sleep(1000);
#else
	sleep(1);
#endif
}

instead of
usrsctp_finish();

in your test program. If usrsctp_finish() does return a non-zero value, the stack is not cleaned up and you might leak memory when just calling usrsctp_init() again.

Okay. I don't have access to my Windows machine now, but I'll test it on Monday and let you know.
Thanks for your help.

I now see where the leak occurs on Windows. It doesn't occur on other platforms. Need to think about a correct way of fixing it. Will let you know when I think the issue is fixed.

I can confirm that there are still leaks using the most recent code, this time I waited for usrsctp_finish() to return properly before calling usrsctp_init()

@tuexen: just out of curiosity, where is the leak that you said you saw?
thanks.

The allocations in
https://github.com/sctplab/usrsctp/blob/master/usrsctplib/netinet/sctp_bsd_addr.c#L357
and
https://github.com/sctplab/usrsctp/blob/master/usrsctplib/netinet/sctp_bsd_addr.c#L405
are never freed.
On the other platforms we use a global list which is freed at the end. In the FreeBSD Kernel we use pointers to a global list of addresses which never goes away.
I need to check if we actually use these pointers in the userland stack, or if a NULL pointer can be provided. If we use the global list, it should be updated when addresses are added to deleted to the stack. Not sure if this happens. I need to check that.

OK. This should be fixed now. Can you retest?

@tuexen: Yes, it appears to be no longer leaking. Thanks so much for your help!


Updating dependencies

Including wallet-selector

lets add the schema to the JS smart contract

lets standardize which wallets we use and add the relevant packages

add
  "resolutions": {
    "near-api-js": "4.0.3"
  },

so yarn works on the frontend

@race-of-sloths

@garikbesson Thank you for your contribution! Your pull request is now a part of the Race of Sloths!
Great job! Usain Bolt jealous of your results!

Current status: waiting for scoring
We're waiting for maintainer to score this pull request with @race-of-sloths score [0,1,2,3,5,8,13] command. Alternatively, autoscoring [1,2] will be applied for this pull request
What is the Race of Sloths

Race of Sloths is a friendly competition where you can participate in challenges and compete with other open-source contributors within your normal workflow
For contributors:

Tag @race-of-sloths inside your pull requests
Wait for the maintainer to review and score your pull request
Check out your position in the Leaderboard
Keep weekly and monthly streaks to reach higher positions
Boast your contributions with a dynamic picture of your Profile

For maintainers:

Score pull requests that participate in the Race of Sloths
Engage contributors with fair scoring and fast responses so they keep their streaks
Promote the Race to the point where the Race starts promoting you
Grow the community of your contributors

Feel free to check our website for additional details!

Bot commands

For contributors

Include a PR: @race-of-sloths include to enter the Race with your PR

For maintainers:

Invite contributor @race-of-sloths invite to invite the contributor to participate in a race or include it, if it's already a runner.
Assign points: @race-of-sloths score [1/2/3/5/8/13] to award points based on your assessment.
Reject this PR: @race-of-sloths exclude to send this PR back to the drawing board.
Exclude repo: @race-of-sloths pause to stop bot activity in this repo until @race-of-sloths unpause command is called

@race-of-sloths score 5


Incorrect master name causes endless flood of connection attempts

In the event that redis-sentinel is misconfigured with valid sentinels but an invalid master name, the logic in discover_slaves will endlessly loop through all configured sentinels with no timeout.
This has caused us some grief, because it's easy to run out of file descriptors with TIME_WAIT connections to Redis.
I'm happy to work on a PR for this, but wanted to touch base first to see if anyone had preferences on how to address this. I'm leaning toward tracking whether we have connected to every sentinel and waiting for some amount of time after failing on every sentinel (up to failover_reconnect_timeout or perhaps a new configurable timout).
Thanks.

I've submit a PR here: https://github.com/flyerhzm/redis-sentinel/pull/51

@tdooner I have merged the pull request.

Great, thanks for the quick fix @phuongnd08 and @flyerhzm!


"Unknown function: MyQuickfixTextFunc" when running :CFilter

Steps to reproduce

Create a file, for example:

foo
foobar
baz

:def MyQuickFixTextFunc(info: dict<number>): list<string>
:  return ['']
:enddef

:defcompile MyQuickFixTextFunc
:set quickfixtextfunc=MyQuickFixTextFunc
:vim /foo/ %
:packadd cfilter
:Cfilter bar
Observe E117: Unknown function: MyQuickFixTextFunc

Expected behaviour
No error, and MyQuickFixTextFunc is found when using Cfilter
Version of Vim
9.0 with patch 1-887
Environment
gvim on Windows 10
Logs and stack traces
No response

This is not a Vim issue.  For help on how to do something please use another place, e.g. https://vi.stackexchange.com/

I don't mean to argue the truth in your sentence, but it is my understanding that the steps to reproduce have been working in vim8 for the past years, and this issue happened when I upgraded to vim9 - in my understanding, I just used vim9's def instead of vim8's function and expected it to work.
Can you please help me understand where or why my expectations went wrong?
I'll also post a question on https://vi.stackexchange.com/ to know how to achieve the behavior I want using vim9

For anyone looking at this thread, here's the answer.


Figure out design for Codebase Context functionality (RAG)

Context
We need to figure out design for Codebase Context functionality (RAG).
Open to suggestions!
Solution

Prior to this, one thing that you folks will probably need is to define some sort of Query Handlers Interface.
The reason for this is that you might decide to use BM25, an encoder or mix any of the possibilities that you will have.
Keep in mind that down the line, you might end up training a small encoder for this context.
I would say to think about an interface that would allow you to mix methods freely 🙂

Got this with continue


remove bad make verify-deps command

Signed-off-by: Ashley Schuett<EMAIL_ADDRESS>
What this PR does / why we need it:
This command does not work as there is not, and never has been a ./hack/verify-deps.sh script. The PR that added this command did not include the script file https://github.com/kubevirt/kubevirt/pull/4703/files.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:

NONE

/lgtm
/approve
thanks. That slipped into my PR somehow from another WIP.


Branch name change from master to main

In the contributing doc, master branch was still
in use. Changed to main
Summary
Describe the goal of this PR. Mention any related Issue numbers.
Requirements (place an x in each [ ])

[X] I've read and understood the Contributing Guidelines and have done my best effort to follow them.
[X] I've read and agree to the Code of Conduct.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks @tigarcia!

Thanks @tigarcia!


Correction for raw affiliation Aeres University of Applied Sciences, Almere, Netherlands; Department of Ecology, Swedish University of Agricultural Sciences, Uppsala, Sweden

Correction needed for raw affiliation Aeres University of Applied Sciences, Almere, Netherlands; Department of Ecology, Swedish University of Agricultural Sciences, Uppsala, Sweden
raw_affiliation_name: Aeres University of Applied Sciences, Almere, Netherlands; Department of Ecology, Swedish University of Agricultural Sciences, Uppsala, Sweden
new_rors: 03jnx2c74;02yy8x990
previous_rors: 015d5s513;02yy8x990
works_examples: W4379793840
contact: 4aacd4770deaa1a467f80742c16b6697:c18ef3ba79f108a7a742 @ hotmail.com

This issue was accepted and ingested by the OpenAlex team on 2024-10-10. The new affiliations should be visible within the next 7 days.


Can't get swing mode to go grey when set to VerticalOff

Hey,
so i use the lg smartthings custom component for my climate control for an air conditioner.
I don't seem to be able to get the swing mode button to go grey when the swing_mode attribute is set to 'VerticalOff'
there isn't a whole lot of documentation on mapping and I'm not even sure i need to use that or not.
I tried messing with style too, but I can't work out what state,entity,value refer to either.
Any ideas appreciated, cheers
  buttons:
    swing_mode:
      type: dropdown
      icon: mdi:approximately-equal
      state:
        attribute: swing_mode
        #mapper: "(state,entity) => (state ? 'on': 'off')"
      #style: >
      #  (value) => (value = 'VerticalOff' ? { color: 'black'} : {})
      active: state => state !== 'off'
      source:
        VerticalOff: 'Off'
        VerticalSwing: 'Vertical Swing'
      change_action: >
        (selected, state, entity) => this.call_service('climate', 'set_swing_mode', { entity_id: entity.entity_id, swing_mode: selected })

This should work:

buttons:
  swing_mode:
    type: dropdown
    icon: mdi:approximately-equal
    state:
      attribute: swing_mode
      mapper: >
        (state,entity) => (state === 'VerticalOff' ? 'off': 'on')
    source:
      VerticalOff: 'Off'
      VerticalSwing: 'Vertical Swing'
    active: >
      state => state !== 'off'
    change_action: >
      (selected, state, entity) => this.call_service('climate', 'set_swing_mode', { entity_id: entity.entity_id, swing_mode: selected })

Sweet! that works perfectly. Thanks so much @regevbr


[11.x] Remove deprecated interface Rule implementation with ValidationRule in Password rule validation

This PR intended for removing deprecated Rule interface with ValidationRule interface in Password rule class.

@MSR2012 seems Taylor doesn't wants to do this right now, sorry.

@driesvints @taylorotwell Thanks for considering this


(demo) scrape arxiv for list of publications using Gumbo + HTTP

Here's a solution based on a discussion on slack:
using Gumbo, HTTP
r = HTTP.get("https://arxiv.org/a/soejima_t_1.html")
r_parsed = parsehtml(String(r.body))
body = r_parsed.root[2]
n_articles = length(body[1][3][2][1][2].children)
article(k) = body[1][3][2][1][2][k][2]
title(k) = strip(article(k)[1][1][2].text)
raw_authors(k) = [e for e in article(k)[1][2].children if e isa HTMLElement{:a}]
name(auth) = strip(auth[1].text)
authors(k) = name.(raw_authors(k))

this gives
julia> title(1)
"Efficient simulation of moire materials using the density matrix  renormalization group"
julia> authors(1)
5-element Array{SubString{String},1}:
 "Tomohiro Soejima"
 "Daniel E. Parker"
 "Nick Bultinck"
 "Johannes Hauschild"
 "Michael P. Zaletel"
julia> foreach(x -> println("- ", title(x)), 1:n_articles)
- Efficient simulation of moire materials using the density matrix  renormalization group
- Isometric Tensor Network representation of string-net liquids
- First-Principles Design of a Half-Filled Flat Band of the Kagome Lattice  in Two-Dimensional Metal-Organic Frameworks

Could easily get the links as well and then that's a way to get a list of publications automatically.

Avik recommends Cascadia.jl to descend the tree a bit more cleanly

Here's a version using Cascadia.jl

Awesome!! I'll add that soon


Corrected the space inconsistency

Corrected the space inconsistency between the signage lists.
cc:// @planemad

All good!. Closes #60


Add support for changing authentication on push.

It's not currently possible to change the authentication credentials (to push to multiple registries) per call to push(). For now users have to create a separate connection per registry and set the authentication credentials when building the connection.
With this change, users will be able to pass any AuthConfig to push, enabling pushes to various registries using the same connection.
This is bringing the same support to push() as exists for pull().

[Current coverage][cc-pull] is 51.81%

Merging [#460][cc-pull] into [master][cc-base-branch] will decrease coverage by 11.30%

@@             master       #460   diff @@
==========================================
  Files            80         80
  Lines          2969       2972     +3
  Methods           0          0
  Messages          0          0
  Branches        417        417
==========================================
- Hits           1874       1540   -334
- Misses         1095       1297   +202
- Partials          0        135   +135

Powered by Codecov. Last updated by [f6127cb...637a3d5][cc-compare]
[cc-base-branch]: https://codecov.io/gh/spotify/docker-client/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/spotify/docker-client/compare/f6127cbd0f461416a8c7e277a990e8a142f79354...637a3d5394d3afcf5bb821c0011f565af6a3d597
[cc-pull]: https://codecov.io/gh/spotify/docker-client/pull/460?src=pr

Accidentally did a forced push on master, and forgot this points to it. I guess on more reason to use a separate branch per PR.

codecov/patch seems to imply that the changes I made aren't covered by any tests. In fact, if you look in PushPullIT.java, you'd see that I do in fact test out the exact functionality I'm implementing.
As far as I can tell PushPullIT.java isn't being run because integration tests get run just after 'package' phase, which occurs after the 'test' phase, which is mainly meant for unit tests.

@mattnworb , am I missing something obvious here to get codecov passing ? If the the builds ran 'verify' instead of just up to 'test', I'm pretty sure PushPullIT would run as well.

@rgruener you're correct, we aren't running the integration tests in Travis for a reason that escapes me at the moment.

👍 thanks for the contribution, and sorry for the delayed review/response!


Litle bug on learn-ocaml-client cli

Hi, when setting options (token and server) the first time (where there is not a config file) an error is showed. But when there is already a config file exit code is 0.

I think we can close this, this bug becomes irrelevant (and I cannot reproduce it) after the merge of #267 .


Regex Based Validation for Email and Password during Registration

Is your feature request related to a problem? Please describe.
Currently during Registration, Email and Password are checked only to ensure they are non empty values. Proper validation must be done to ensure they are valid values.
Describe the solution you'd like
Regex Based Validation
Describe alternatives you've considered
N/A
Additional context

If the maintainers think this is a valid issue, then I'd like to work on the same.

@amlannandy are you still available to work on this issue?

@amlannandy are you still available to work on this issue?

@amlannandy are you still available to work on this issue?

Someone added the confirm password field. So if amlannandy is not available for work, I can work on this.

@amlannandy are you still available to work on this issue?

Someone added the confirm password field. So if amlannandy is not available for work, I can work on this.

@Techno-Disaster Hey. I don't think I'd be able to work on this atm.
@KevalPrajapati Feel free to take this up. :)

@Techno-Disaster Hey. I don't think I'd be able to work on this atm.
@KevalPrajapati Feel free to take this up. :)

@Techno-Disaster Hey. I don't think I'd be able to work on this atm.
@KevalPrajapati Feel free to take this up. :)

Thanks for informing. I can work on this @Techno-Disaster

@Techno-Disaster Hey. I don't think I'd be able to work on this atm.
@KevalPrajapati Feel free to take this up. :)

Thanks for informing. I can work on this @Techno-Disaster


[Broker]support ranger

Fixes #8553

/pulsarbot run-failure-checks

Thanks for your contribution but I think that this authorization plugin should not be part of the main code base. It could live in its own repo and then users can package or include it if they want to use it.

@ltamber
https://github.com/aries-demos/dataops/tree/master/stack-hooks/before-INSTALL/scripts/ranger
The following example illustrates the following scenario

solved problem

Unified authority control for hdfs, yarn, hive, spark, hbase, storm, kafka, atlas, solr, etc.

Managed data flow
- ranger-admin is responsible for strategy storage and provision of http restful api extensions to provide strategy and modification services
- ranger-usersync focuses on synchronizing user and user group data from ldap to ranger
- ranger-tagsync is responsible for synchronizing the tags on the atlas to ranger

Data flow of the plug-in

After the plug-in is allowed, http periodically (30 seconds by default) downloads the policy from ranger-admin to the local /etc/ranger
- Through the parsing strategy, it is similar to a big hashmap. When the request comes, filter (checkPermission) for permission control
- The result log is written back to solr, hdfs (the new version of kafka is not enabled)

Pulsar is also here as a component that requires permission verification. Maybe you can synchronize the tags marked by Pulsar on Atlas to ranger based on ranger-tagsync?

The pr had no activity for 30 days, mark with Stale label.

Closed as stale and conflict. Please rebase and resubmit the patch if it's still relevant.


Pass on the first chapter of the SPARK intro

And replace some non-ASCII characters.

Hey there! I'm not sure about using 1 code block to regroup code that goes together, I would like us to discuss this first before approving this review :)


Create Modal explaining how to play .

A modal should pop up when a user enters any game page.
Users should be able to click out of the box either by clicking on the X or clicking outside of the Box.
Modal should show an example showing what you see after you submit a rank.
Modal should explain correct answers are 1 point and incorrect is minus 1.
Modal should have a link on the bottom prompting users to submit clips if they so wish.

Issue has been solved with pull request #2


Pact file is not generated (Android, Gradle Wrapper)

au.com.dius:pact-jvm-consumer-junit5:4.0.10
au.com.dius:pact-jvm-consumer-java8:4.0.10
au.com.dius.pact 4.1.7
Gradle 6.1.1

Running JUnit5 consumer tests within IntelliJ (Android Studio) generates the Pact file just fine and outputs it to app/target/pacts.
However, running the same tests from command line using ./gradlew clean testSomeBuildVariantUnitTest does not generate anything.
How can one run unit tests from command line in order to have the file created?
Thanks

@borwoj please don't mix major versions of the Pact-JVM libraries. IntelliJ must be resolving the dependencies differently and using the same version.

Thanks, downgraded to
au.com.dius:pact-jvm-consumer-junit5:4.0.10
au.com.dius:pact-jvm-consumer-java8:4.0.10
au.com.dius.pact 4.0.10

but that did not help.

You need to confirm that ./gradlew clean testSomeBuildVariantUnitTest is running your unit tests. Check the test output report to see what tests are running. Tests normally run from the test task, which the check depends on.

@uglyog Thank you for the follow up. I can 100% confirm that the exact same unit tests, including Pact annotated tests, are being run from IntelliJ and the command line, with the missing Pact file being the only difference. If I intentionally make some Pact test fail, the build will fail in both cases and will point to that test.
As for the specific command, I follow this document: https://developer.android.com/studio/test/command-line
Tried both
./gradlew test

to test all the variants and
./gradlew testSomeBuildVariantUnitTest

for the specific variant.

Check for a build/pacts directory. Gradle generates output files into build, not target

Ah of course, bingo! I was checking the app/target/pacts path only. Thanks a lot @uglyog! 🙇


Update Board_Instructions.md

Switch M5Stack doc links to english

Hi @lboue, thank you for pointing out this issue.


Unbinding events with off throws error

When calling element.off('click'); if element.on('click', ...); has not been called before, i.e. when the event is not set up yet, I get the error TypeError: getData(...) is undefined, seem to occur here.

Ah, I think I see the issue. We're expecting an object and immediately trying to fetch a property of that object, but instead are receiving undefined. Good catch.

Pushed a fix for this over at https://github.com/kenwheeler/cash/tree/event-off-fix
Try it out and let me know if you experience any issues. Next bugfix update we'll roll it into the master repo.

@thasmo, I saw the same error in Firefox, but I was getting a slightly different error in Chrome and I'm thinking it has to do with the JS interpreter in V8.
Firefox:
TypeError: getData(...) is undefined                                            cash.js:484:22

Chrome:
Uncaught TypeError: Cannot read property '.delegateEventsview8' of undefined    cash.js:484:50

Hitting this issue with Backbone's delegated event handling in my views.

Seems there isn't test coverage yet against running .off() on a bound event that hasn't been initialized per @thasmo's scenario: https://github.com/kenwheeler/cash/blob/master/test/test.js#L300-L310

Fixed in 1.3.5


seldon-core charm stable backport is necessary to make an example run

With juju deploy kubeflow, it pulls the stable charm of seldon-core (revision 52). However, it fails to run a simple example of Seldon deployment.
By using the edge channel of the charm, it works. And after looking into the commits, there are some related ones so we need those to be available in the stable charm.
https://github.com/canonical/seldon-core-operator/pull/14
https://github.com/canonical/seldon-core-operator/issues/13
$ juju info seldon-core
name: seldon-core
charm-id: ZGHtHpN4TqAzrUlh9aG1SWxXenopHFRH
...
channels: |
  latest/stable:     52  2022-01-25  (52)  1MB
  latest/candidate:  ↑
  latest/beta:       ↑
  latest/edge:       58  2022-06-01  (58)  7MB

https://www.kubeflow.org/docs/external-add-ons/serving/seldon/#simple-example
$ cat <<EOF | kubectl create -n admin -f -
apiVersion: machinelearning.seldon.io/v1
kind: SeldonDeployment
metadata:
  name: seldon-model
spec:
  name: test-deployment
  predictors:
  - componentSpecs:
    - spec:
        containers:
        - image: seldonio/mock_classifier_rest:1.3
          name: classifier
    graph:
      children: []
      endpoint:
        type: REST
      name: classifier
      type: MODEL
    name: example
    replicas: 1
EOF

Error from server (InternalError): error when creating "STDIN":
Internal error occurred: failed calling webhook
"v1.vseldondeployment.kb.io": Post
"https://seldon-webhook-service.kubeflow.svc:4443/validate-machinelearning-seldon-io-v1-seldondeployment?timeout=30s": dial tcp
<IP_ADDRESS>:4443: connect: connection refused

This was tricky since juju refresh seldon-controller-manager --channel edge didn't solve the problem. It required a fresh redeployment or manual edit to the service definition.
$ juju refresh seldon-controller-manager --channel edge
-> seldon-core revision 52 to 58

$ juju status seldon-controller-manager
Model     Controller          Cloud/Region        Version  SLA          Timestamp
kubeflow  microk8s-localhost  microk8s/localhost  2.9.31   unsupported  13:01:41Z

App                        Version                Status  Scale  Charm        Channel  Rev  Address        Exposed  Message
seldon-controller-manager  res:oci-image@047f2fc  active      1  seldon-core  edge      58  <IP_ADDRESS>  no

Unit                          Workload  Agent  Address     Ports              Message
seldon-controller-manager/1*  active    idle   <IP_ADDRESS>  8080/TCP,4443/TCP

$ microk8s kubectl -n kubeflow describe service/seldon-webhook-service
Name:              seldon-webhook-service
Namespace:         kubeflow
Labels:            app=seldon
                   app.juju.is/created-by=seldon-controller-manager
                   app.kubernetes.io/instance=seldon-core
                   app.kubernetes.io/version=1.9.0
Annotations:       <none>
Selector:          app.kubernetes.io/name=seldon-controller-manager,control-plane=seldon-controller-manager
Type:              ClusterIP
IP Family Policy:  SingleStack
IP Families:       IPv4
IP:                <IP_ADDRESS>
IPs:               <IP_ADDRESS>
Port:              <unset>  4443/TCP
TargetPort:        4443/TCP
Endpoints:         <none>
Session Affinity:  None
Events:            <none>

-> control-plane=seldon-controller-manager was still there after the refresh.
$ microk8s kubectl -n kubeflow edit service/seldon-webhook-service

$ microk8s kubectl -n kubeflow describe service/seldon-webhook-service
Name:              seldon-webhook-service
Namespace:         kubeflow
Labels:            app=seldon
                   app.juju.is/created-by=seldon-controller-manager
                   app.kubernetes.io/instance=seldon-core
                   app.kubernetes.io/version=1.9.0
Annotations:       <none>
Selector:          app.kubernetes.io/name=seldon-controller-manager
Type:              ClusterIP
IP Family Policy:  SingleStack
IP Families:       IPv4
IP:                <IP_ADDRESS>
IPs:               <IP_ADDRESS>
Port:              <unset>  4443/TCP
TargetPort:        4443/TCP
Endpoints:         <IP_ADDRESS>:4443
Session Affinity:  None
Events:            <none>

-> After removing control-plane=seldon-controller-manager by hand, seldon job started working.

This should be resolved by the end of next week.  We will be doing a patch release to CKF 1.4, and releasing it to the ch:kubeflow/1.4/* channels (as well as to ch:kubeflow/latest/stable, at least until it gets supplanted in a month or two)

This is resolved in the current release.  If it reoccurs, please reopen


migrating rbac-operator, organization-operator to kubebuilder or other projects

Towards https://github.com/giantswarm/roadmap/issues/346

[ ] rbac-operator
[x] organization-operator

For organization operator:
It would be quite easy to replace it just for CAPI installations since most functionality is deprecated in CAPI. Team also said they are up for it. Plus, we could add metrics easily.
We need to prioritize this @gawertm

@anvddriesch what would be left here after @ssyno work of migrating organization operator.. should we do rbac-operator too?

@gawertm I think we should.
That would require a lot more work though and we should refine it because it's possible that we can simplify some of the controllers.

updating title to just "rbac-operator"

remove the dependency -> migrate to kubebuilder


LFS-282: Searching of nested answers (not just direct children)

This PR re-implements the quickSearch() method so that XPATH is used instead of JCR-SQL2. The XPATH query is written so that not only direct children of the form but also nested answers are searched. This PR also takes front-end code from the LFS-254 PR, specifically for highlighting the matching text substring for a matching answer.
This PR implements everything required by LFS-254 except for ensuring that it is the first matching answer that is displayed in the auto-suggest results - this has been moved to a new sprint. Due to the large overlap in functionality between this PR and LFS-254, merging this PR will not allow for LFS-254 to be merged over-top.

Problem when searching '%', '_' and '"'.

% is still causing error

Tested.
Works as expected.


Adding APICTL+Git Integration documentation

Purpose
Adding documents for APICTL with GIT integration feature.
Fixes: https://github.com/wso2/product-apim-tooling/issues/401
This is adding changes to the existing documentation : CI/CD with WSO2 API Manager
The added changes are highlighted with RED rectangles.

@shaniR , this PR is blocked due to your comments. Please approve and merge it. I checked it again and approved it, but I don't have access to merge it.


How to get the URL of the returned simple summary?

For instance:
info = wikipedia.summary("Facebook", sentences=5)
url = ?

Thank you!

You can try to migrate to Wikipedia-API. It's very straightforward.
import wikipediaapi
wiki = wikipediaapi.Wikipedia('en')
p = wiki.page('Facebook')
print(p.fullurl)
print(p.summary[0:60])

Outputs
https://en.wikipedia.org/wiki/Facebook
Facebook is an American for-profit corporation and an online

I think if you use .page(), it will load more data than simply using .summary(). Not sure.

@evilplanet There is a preload argument in the page method of the Wikipedia module. If it is set to True, only then the entire page is obtained by default. Else, I think the summary will be obtained only when the summary method is called (see this code for more info.


added endpoint for a stack's request count (#221)

This PR addresses this issue #221:
In a Jenkins Pipeline, I want to block the deletion of a stack until it receives no more traffic. The usage of DNS weights for this is insufficient as callers might use long lived connections.

The metric I'm looking at is RequestCount for load balancers in AWS CloudWatch.

A new service lizzy.app.AWS is introduced here that wraps some functionality of boto3 for convenience. In particular, this service provides the following functionality:

resolving a load balancer given a stack-id (if any)
resolving the request count in the last n minutes of that load balancer
Both, classic and application, load balancers are supported.

Further, a new endpoint is added /stacks/{stack-id}/request_count that first resolves the stack's load balancer and then returnes the request count of it. If the stack can not be found or the stack does not have a load balancer a 404 is returned.

Hi. I think this would make more sense to implement this on senza and use senza here to get the values.
This way this functionality would also be available locally.

@jmcs I don't think there is not much demand for this functionality by senza users as people with access to AWS accounts have other options to obtain this information in a more informative way like the CloudWatch Console for instance.
How about adding a flag to senza delete like --ensure-no-requests that aborts the deletion if the stack receives traffic according to CloudWatch?

How about adding a flag to senza delete like --ensure-no-requests that aborts the deletion if the stack receives traffic according to CloudWatch?

This would be ok for me if it meets your requirements. I just don't want to add much logic to lizzy, it should remain a wrapper of senza and not much more.


finesse 3.0a3

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

It looks like some patches for Windows failed?

@danielbrown2 why was this merged when the CI was failing?

This confused me as well. When I merged #9 (which passed the tests) it marked this and #8 as merged too. I guess that's because I merged the changes in both into my own fork whilst trying to fix the windows building.


Click to drag scrolling for the website conflicts with text selection

Drag selections within SuperEditor on the marketing website only work if the initial drag direction is horizontal. Starting a vertical drag causes the entire page to scroll.
We should probably check whether or not there is a touch interface. If there is no touch interface, then disable drag scrolling. If there is a touch interface, then we'll need some other solution.

@angelosilvestre can you check if this is still a problem?

Thanks. I'll close this as completed.


Merge prTesting_201906301230 branch to master branch

Docs Build status updates of commit a8063f2:
:clock10: Pending: waiting for processors (5 builds ahead of you)
:warning: Docs Build is busy, currently there are 5 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit a8063f2:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

split/updateTestCon.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


patch-set chart version to appropriate alpha

This is also to test the PR action flow

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Test downstream changes to Millard muscle initialization to loading models in GUI

Follow up from opensim-org/opensim-core#2790

From testing gait1018 CMC, seems like minimal changes:

From tug of war:


Update ivadomed version to 2.9.8

Checklist

[x] I've given this PR a concise, self-descriptive, and meaningful title
[ ] I've linked relevant issues in the PR body
[x] I've applied the relevant labels to this PR
[ ] I've added relevant tests for my contribution
[ ] I've updated the documentation and/or added correct docstrings
[x] I've assigned a reviewer
[x] I've consulted ADS's internal developer documentation to ensure my contribution is in line with any relevant design decisions

Description
Update ivadomed version to latest release 2.9.8 in environment.yml

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 89.538%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1164

Relevant Lines:
1300

💛  - Coveralls


Log and continue if install uuid can't be retrieved

Does the git mirror work if the UUID if empty?

@joshwget Yes. For instance, you may access the new endpoint in a browser (which will not send the header, obviously).
https://git.rancher.io/repos/rancher-catalog/commits/master

It might be useful to set the UUID to all zeros by default for consistency (and to see how many setups actually hit this error as well).
Just an idea though, LGTM in any case.

LGTM


Data leak?

Somehow I can see 3,700 changes in resource control panel, but I didn't create any of these, even I commit but don't know where it committed.
Please help to check.

Please share a screenshot for me to take a better look at it. These files are likely generated by a dependency manager and can be ignored by adding entries to .gitignore.

Please share a screenshot for me to take a better look at it. These files are likely generated by a dependency manager and can be ignored by adding entries to .gitignore.

Uploading FullSizeRender.MOV…

I see the problem is, thanks for reply my silly question.
The files are from /node_module even I didn’t connect to repo.


Ability to edit both the source code and the code in a custom text editor

Hi developers,
I'm not sure if this has already been addressed or not, but I'm looking for a feature that would allow users to edit both the source code and the code in a custom text editor, side by side, just like a editable webview panel. I've checked out the custom text editor feature and it seems to be closest to what I'm thinking about, but I couldn't figure out a way to display both the source code and the rendered code in the custom text editor.
Thanks!

Falls under #22068


Fine-grained access control does not work for nested create/connectOrCreate fields

Let's say we have the following object:
{
   "car":{
      "name":"Audi",
      "color":{
         "create":{
            "name":"yellow"
         }
      },
      "type":{
         "connect":{
            "name":"SUV"
         }
      }
   }

We do want to allow to connect to existing record (type) but we don't want to allow to create a new record (color). Currently that's not possible because there is no difference in the paths array:
paths: ['/create/car/color/name', '/create/car/type/name'....]

Another problem with the path object is that type (allowed) overwrites the falsy canAccess variable of color by iterating first through the path array and then through the shield object, see:
https://github.com/maoosi/prisma-appsync/blob/main/packages/client/src/guard.ts#L118-L121
I solved both issues by iterating through the params.args.data object where you can filter by ['create', 'connectOrCreate']
PS: Thanks again for your great lib!

@maoosi Similar to an issue I created recently. Being able to omit certain operation paths from the data field in Mutation inputs.

Let's track this issue in https://github.com/maoosi/prisma-appsync/issues/125


[KBFS-1525] Support unknown fields in journals

Have blockJournalEntry support unknown fields.
Have mdIDJournal store a struct (with unknown
field support) instead of just an MdID.
Have mdJournal store MD data in a file in a
per-MD directory. In the future, the directory
might have other files (e.g. to store the
version).

CI errors look like flakes, but will retry to be sure.

Another flake, checking in.


metadata.avdl dateOfBirth to ISO8601

dateOfBirth to ISO8601/string (already discussed in https://github.com/ga4gh/schemas/pull/328)

+1

Thanks!

On 01 Jul 2015, at 16:55, Helen Parkinson<EMAIL_ADDRESS>wrote:
+1
—
Reply to this email directly or view it on GitHub https://github.com/ga4gh/schemas/pull/341#issuecomment-117706768.


Add audit validations to CircleCI

Issue Type

Feature request

Current Behavior

CircleCI does not run audit validations.
Expected Behavior

CircleCI will run a Lighthouse audit and provide the score to ensure the application stays above acceptable standards.
Possible Solution

Implement audit validations to CircleCI.

Duplicate of #79.


Completion service refactoring

Since the change requires an addition parser for completion, I also refactored the parser builder to accept more generic parsers.

@spoenemann Yep, didn't check after merging. The binary cst node search has broken completion support for any position after the last token. I've fixed this now 👍

@spoenemann Thanks for looking into it again. The new cst search behavior broke more in the completion provider than anticipated. It will now correctly search for the last node of the current cursor position.

@spoenemann This is a bit more difficult than one would assume since Chevrotain mangles our output that we get, as it sees the input that we give it as invalid. It's missing the mandatory closing ;, so it performs it's error recovery. Seems like in that case it isn't perfectly able to return to a valid state.


Add Functionality to revoke/cancel CGP Votes

Current Behavior
When a user has voted for a proposal, they are unable to cancel their votes using the UI.
Expected Behavior
If a user voted on a proposal, they should be able to cancel their vote by interacting with the UI to send a transaction to the manager contract manager.revokeVotes(), allowing them to cancel their votes.

@0xarthurxyz Proposing this as a good first issue for @yerdua, happy to pair and help on this.

Are there any non-obvious conditions for revoking votes? I have a work in progress that adds a button, and seems to send the transaction.
WIP code: #180
WIP demo: https://staked-celo-web-app-git-feat-revoke-cancel-cgp-votes-c-labs.vercel.app/governance/
One of the many transactions triggered by clicking this button: 0x631369b5d0b111f5efd43af2b1faf562fba4414c0faafdf23dd3f83507c98704
As far as I can tell, the transaction looks correct and has been processed. However, the votes are unchanged.

At the time of writing (2023-09-25), there are no longer any active CGPs on mainnet to test with. This is not high enough priority to jump through the hoops of setting up test conditions on alfajores, or mocking them otherwise. This is considered blocked until there's a CGP active on mainnet again.

PR Ready here #180


Support for Elasticsearch in bequeath-your-data-and-die

v2.0.0 does not support Elasticsearch as this client does not have any operation.  This is an implementation task, that should be clear once #45 is resolved.

Priority:Low

Since the dependent issue https://github.com/openBackhaul/ExecutionAndTraceLog/issues/45 is yet to be decided and is moved to future release, this issue is also moved to future release.


[CI] Create Docker Hub repo

Current Behavior

Desired Behavior

Implementation

Acceptance Tests

Mockups

Contributor Guide

Created - https://hub.docker.com/r/layer5/meshery-cilium


Some make errors when "make -f tensorflow/lite/micro/tools/make/Makefile third_party_downloads"

Hi,
I get several errors " *** multiple target patterns.  Stop." in every line where, i.e.:
$(eval $(call microlite_test,micro_speech_mock,\
$(MICRO_SPEECH_MOCK_SRCS),$(MICRO_SPEECH_MOCK_HDRS),$(MICRO_SPEECH_GENERATOR_INPUTS)))

is written.
I solved it by writing:
$(eval $(call microlite_test,micro_speech_mock,\
$(MICRO_SPEECH_MOCK_SRCS),$(MICRO_SPEECH_MOCK_HDRS)))

$(eval $(call $(MICRO_SPEECH_GENERATOR_INPUTS)))

As said, this was in several Makefile.inc files.
Furthermore I found several typos, which stopped the make process, i.e. in
tensorflow/lite/micro/examples/hello_world/Makefile.inc line 39 with double ",,":
$(HELLO_WORLD_TEST_SRCS),,$(HELLO_WORLD_GENERATOR_INPUTS)))
and in
/tensorflow/lite/micro/kernels/integration_tests/seanet/conv/Makefile.inc line 73 with double ",,":
$(integration_tests_seanet_conv_SRCS),,$(integration_tests_seanet_conv_GENERATOR_INPUTS)))
Perhaps there are more typos.
But it went through without problems then:
find: ‘../google/’: No such file or directory
tensorflow/lite/micro/tools/make/downloads/flatbuffers already exists, skipping the download.
tensorflow/lite/micro/tools/make/downloads/pigweed already exists, skipping the download.
make: Nothing to be done for 'third_party_downloads'.

Thanks

Similar to https://github.com/tensorflow/tflite-micro/issues/583, I am assuming that you are running into issues when attempting to build on Windows. We would be happy to review PRs with fixes, but are not able to support Windows at this time.


installation problem

When I try to instal node-sass it shows up :
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\Program Files\nodejs\\node.exe" "C:\Program Files\nodejs
\node_modules\npm\bin\npm-cli.js" "install" "node-sass"
npm ERR! node v0.12.2
npm ERR! npm  v2.7.4
npm ERR! Cannot read property 'trim' of undefined
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     https://github.com/npm/npm/issues
npm ERR! Please include the following file with any support request:
npm ERR!     C:\Users\Souhaib\npm-debug.log

Hi @Soularix, please follow the steps in out troubleshooting guide and produce the output.
https://github.com/sass/node-sass/blob/master/TROUBLESHOOTING.md#windows-1

I followed the steps but I still get the same error :
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\Program Files\nodejs\\node.exe" "C:\Program Files\nodejs
\node_modules\npm\bin\npm-cli.js" "install" "node-sass"
npm ERR! node v0.12.2
npm ERR! npm  v2.7.4
npm ERR! Cannot read property 'trim' of undefined
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     https://github.com/npm/npm/issues
npm ERR! Please include the following file with any support request:
npm ERR!     C:\temp1\npm-debug.log
C:\temp1>cd node_modules\node-sass\vendor
The system cannot find the path specified.

That's fine. However we need to output from those commands before we can offer any help.

what commands ?

The commands shown on our troubleshooting guide https://github.com/sass/node-sass/blob/master/TROUBLESHOOTING.md#windows-1
Please follow every single step and paste the output here.

This is an error in npm. It's cause by git not being installed. This related to https://github.com/sass/node-sass/pull/931.
@am11 @saper it would seem having a git backed dep is show stopper for Windows. We need a solution here ASAP. #931 is failing CI hard. I suggest we revert the pangyp changes until it's fixed upstream.

I followed the steps :
C:\temp1>npm -v
2.7.4
C:\temp1>node -v
v0.12.0
C:\temp1>node -p process.versions
{ http_parser: '2.3',
node: '0.12.0',
v8: '3.28.73',
uv: '1.0.2',
zlib: '1.2.8',
modules: '14',
openssl: '1.0.1l' }
C:\temp1>node -p process.platform
win32
C:\temp1>node -p process.arch
x64
C:\temp1>npm install node-sass
npm WARN git config --get remote.origin.url returned wrong result (https://git
hub.com/am11/pangyp) undefined
npm WARN git config --get remote.origin.url returned wrong result (https://git
hub.com/am11/pangyp) undefined
npm ERR! git clone https://github.com/am11/pangyp undefined
npm ERR! git clone https://github.com/am11/pangyp undefined
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\Program Files\nodejs\\node.exe" "C:\Program Files\nodejs
\node_modules\npm\bin\npm-cli.js" "install" "node-sass"
npm ERR! node v0.12.0
npm ERR! npm  v2.7.4
npm ERR! code ENOGIT
npm ERR! not found: git
npm ERR!
npm ERR! Failed using git.
npm ERR! This is most likely not a problem with npm itself.
npm ERR! Please check if you have git installed and in your PATH.
npm ERR! Please include the following file with any support request:
npm ERR!     C:\temp1\npm-debug.log
C:\temp1>cd node_modules\node-sass\vendor
The system cannot find the path specified.

Hi @Soularix, apologies this is a know issue with Windows and will fixed in 3.0.1.

Thank you very much

Can someone answer if there is a workaround that allows this to work currently? Such as installing a previous version of gulp-sass? We are in a situation of needing to get this module functional on a Windows machine ASAP... Any help would be greatly appreciated.

If you use shell which has git installed (lets say powerhsell prompt from GitHub, that comes with GitHub for Windows: https://windows.github.com/), it will install node-sass v3 on Windows.
Later this week (=> soon), we will release v3.0.1.

@DatasBoobieTrap I removed the old gulp-sass folder installed the previous version by : "npm install<EMAIL_ADDRESS>it worked

@Soularix, @DatasBoobieTrap, v3.1.0 is released.


Add a Gitter chat badge to README.md

Complexible/stardog.js now has a Chat Room on Gitter
@kendall has just created a chat room. You can visit it here: https://gitter.im/Complexible/stardog.js.
This pull-request adds this badge to your README.md:

If my aim is a little off, please let me know.
Happy chatting.
PS: Click here if you would prefer not to receive automatic pull-requests from Gitter in future.

Already added.


Remove FeatureFlags pattern

I see that https://github.com/temporalio/sdk-php/pull/483 introduce FeatureFlag class. That is a pattern that could be successfully used in an application but should be avoided in a shared library.
It is basically shared global memory. Ie it is as bad as using $_SERVER to store data in. Im not sure if this specific is bad/dangerous in any way, but I think we should avoid open this door.

What was changed
Removed class FeatureFlag and use proper constructor arguments instead
Why?
Shared memory is bad.

Could you please run the CI? It will make it easier for me to have this PR "ready to be merged".

Sorry for the delay. I partially agree with your remark.
As you might have guessed, these flags change the behavior of the SDK at the level of the entire PHP worker (process). They are introduced for a consistent migration to more correct behavior, which will be established in the next major version.
In my opinion, passing individual flags through the constructor might be a mistake because:

Some experimental flags may be removed between minor versions.
The behavior should not differ for different workers. Here, a global state looks better.

The solution that might look best is to create a common builder (or two: one for the client and one for the worker), which is configured once and from which any configured class (WorkflowClient, ScheduleClient, ServiceClient, cloud API client, WorkerFactory, etc.) can be obtained without duplicating internal services. In this case, the DTO with flags will be among the other common services.
This also would help to resolve some inconveniences when using multiple types of clients that need to use the same configs and services (marshaller, encoders, credentials, etc.).
Passing flags to such a builder would be preferable to what we have now.
The release is scheduled for September, and I'm not sure I will have enough time to add the Builder. However, upon adding such a builder, the FeatureFlags class can be easily deprecated.

@Nyholm hi 👋
Could you please leave feedback on this PR? https://github.com/temporalio/sdk-php/pull/505

Closed in favor of #510


Cannot Install Nuget Package

Hello,
For some reason every time I try to install the Nuget package I get this error:
Could not install package 'System.Runtime.InteropServices.RuntimeInformation 4.0.0'. You are trying to install this package into a project that targets '.NETPortable,Version=v4.5,Profile=Profile111', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.
Steps to reproduce

Open a new Xamarin PCL project.

Attempt To Install Nuget package into everything.

Expected behavior
Should install without issue and have access to library.
Actual behavior
Receiving error message and not building.
Crashlog
Severity	Code	Description	Project	File	Line	Suppression State
Warning		Type universe cannot resolve assembly: System.Runtime, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.	Bluetooth.UWP
Warning		The "ResolveLibraryProjectImports" task failed unexpectedly.
System.IO.FileNotFoundException: Could not load assembly 'Bluetooth, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken='. Perhaps it doesn't exist in the Mono for Android profile?
File name: 'Bluetooth.dll'
at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters) in /Users/builder/data/lanes/5147/c2a33d8e/source/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/DirectoryAssemblyResolver.cs:line 220
at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(String fullName) in /Users/builder/data/lanes/5147/c2a33d8e/source/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/DirectoryAssemblyResolver.cs:line 160
at Xamarin.Android.Tasks.ResolveLibraryProjectImports.Extract(DirectoryAssemblyResolver res, ICollection1 jars, ICollection1 resolvedResourceDirectories, ICollection1 resolvedAssetDirectories, ICollection1 resolvedEnvironments)
at Xamarin.Android.Tasks.ResolveLibraryProjectImports.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext()	Bluetooth.Android
Warning		obj\Debug\libraryprojectimports.cache does not exist. No Project Library Imports found	Bluetooth.Android
Warning	IDE0006	Error encountered while loading the project. Some project features, such as full solution analysis for the failed project and projects that depend on it, have been disabled.	Bluetooth.Android		1	Active
Error		Could not install package 'System.Runtime.InteropServices.RuntimeInformation 4.0.0'. You are trying to install this package into a project that targets '.NETPortable,Version=v4.5,Profile=Profile111', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.			0
Warning		Cannot resolve Assembly or Windows Metadata file 'System.Runtime.dll'	Bluetooth.UWP	c:\users\paul\source\repos\Bluetooth\Bluetooth\Bluetooth.UWP\Bluetooth.UWP.csproj
Warning		3: error: Error: No resource found that matches the given name: attr 'windowActionModeOverlay'.	Bluetooth.Android	c:\users\paul\source\repos\Bluetooth\Bluetooth\Bluetooth.Android\Resources\values\styles.xml
Warning		3: error: Error: No resource found that matches the given name: attr 'colorAccent'.	Bluetooth.Android	c:\users\paul\source\repos\Bluetooth\Bluetooth\Bluetooth.Android\Resources\values\styles.xml
Warning		3: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light.Dialog'.	Bluetooth.Android	c:\users\paul\source\repos\Bluetooth\Bluetooth\Bluetooth.Android\Resources\values\styles.xml
Warning		2: error: Error: No resource found that matches the given name: attr 'colorAccent'.	Bluetooth.Android	c:\users\paul\source\repos\Bluetooth\Bluetooth\Bluetooth.Android\Resources\values\styles.xml
Warning		1: error: Error: No resource found that matches the given name: attr 'windowNoTitle'.	Bluetooth.Android	c:\users\paul\source\repos\Bluetooth\Bluetooth\Bluetooth.Android\Resources\values\styles.xml
Warning		1: error: Error: No resource found that matches the given name: attr 'windowActionBar'.	Bluetooth.Android	c:\users\paul\source\repos\Bluetooth\Bluetooth\Bluetooth.Android\Resources\values\styles.xml
Warning		1: error: Error: No resource found that matches the given name: attr 'colorPrimaryDark'.	Bluetooth.Android	c:\users\paul\source\repos\Bluetooth\Bluetooth\Bluetooth.Android\Resources\values\styles.xml
Warning		1: error: Error: No resource found that matches the given name: attr 'colorPrimary'.	Bluetooth.Android	c:\users\paul\source\repos\Bluetooth\Bluetooth\Bluetooth.Android\Resources\values\styles.xml
Warning		1: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light.DarkActionBar'.	Bluetooth.Android	c:\users\paul\source\repos\Bluetooth\Bluetooth\Bluetooth.Android\Resources\values\styles.xml
Configuration
Version of the Plugin: 5.3.1
Platform: Android 7.0 - API 24
Device: SM-G955U

Hi @PapaQuackers,
I'm the friendly issue checker.
Thanks for using the issue template :star2:
I appreciate it very much. I'm sure, the maintainers of this repository will answer, soon.

For PCL, please try profile259


[9.4] ISPN-9841 Non-blocking Hot Rod authentication

https://issues.jboss.org/browse/ISPN-9841

None of the failures are related


Investigate how to manage/visualize cluster setup

It is not clear what the exact setup is for a specific cluster and we have a problem with drift
Currently this is a very manual process
We need:

Better way of visualizing the current state of a cluster
Some sort of dashboard?
Alert if state of the cluster differs from config

Documentation of each cluster is a bit lacking and incoherent
Task: investigate which tooling could be used for this (ArgoCD? Scripts around helmfile? A grafana dashboard?)
Also come up with a doc template for cluster setup.

Nice one!
Using this textbox to brainstorm, but it seems to me that:

terraform plan should detect drift at the infrastructure level
ansible --dry-run should detect drift at the OS level
helmfile diff should detect drift at the Kubernetes level

We could start with a daily check script, then produce a fully featured Grafana dashboard to show visibility into our thought process during pre-sales.

@pettersv this should be part of the discussion on how to handle 100 clusters

@pettersv this issue is a bit to wide and it's not clear what we want to see/monitor
Can you please add some clarifications around what is expected from this?

Related?

https://elastisys.io/compliantkubernetes/operator-manual/troubleshooting/#how-do-i-check-if-infrastructure-drifted-due-to-manual-intervention
https://elastisys.io/compliantkubernetes/operator-manual/troubleshooting/#how-do-i-check-if-the-kubespray-setup-drifted-due-to-manual-intervention
https://elastisys.io/compliantkubernetes/operator-manual/troubleshooting/#how-do-i-check-if-apps-drifted-due-to-manual-intervention


Dotbot 2.0

This issue is meant for tracking work on Dotbot v2.0, the first major release since v1.0 in March 2014.
Completed features
(none yet)
Accepted features / changes

Directive plugins (see #65)
Default options (see #34)
Improved error messages (see #73)

Features under consideration

CLI flag to only run certain sections (see #44 and #49, 2nd item)
Platform specific link paths (see #57)
Be able to write to files/folders that require special privileges (see #49, 3rd item)
Uninstall command to delete symlinks specified in install config (see #49, 4th item)
Automatic backup / replacement of dotfiles (see #12 and #36)
Support interactive execution (see #74)
Make Dotbot usable as a Python submodule (see #75)

Rejected features
(none)

Design decisions
(nothing here yet)
To be discussed

What file format do we want to use? There are a couple options I can think of: JSON/YAML file (declarative), other data format (e.g. HOCON), or Python DSL. Maybe there are other completely different ways to do it too.
Because people use Dotbot as a submodule, we need to be careful when figuring out how to ship the upgrade. Should it be on the master branch? Should Dotbot 2.0 forever live in a 2.0 branch with master being reserved for bugfixes for 1.0?

Release information
The release date is currently unknown. Work on Dotbot v2.0 has not started yet.
(This top post will be edited as stuff happens. This issue will be used for discussing the design of v2.0.)

There may be some config file API changes required to have a clean way to support the XDG Base Directory Specification. See #23.

It would be great to provide better error messages when there are problems with the config file. Currently, if there are YAML syntax errors, the error messages are decent. If the config file is valid YAML but doesn't make sense for Dotbot, the errors are pretty bad. If there is going to be a new config file format for Dotbot 2.0, this should be kept in mind so that we can be sure to have high-quality error messages. See #8 and #27 for related discussion.

In the current config file format, there isn't a clear place to put default options. This seems like it is a nice feature to have, and this should be kept in mind if designing a new config file format. See #34.

+1 for the error messages

Having automatic replacement and backup of old dotfiles would be nice. This was discussed in #12 and #36. Perhaps the cleanest way to support this would be through default options as described in #12.

Some more new features were suggested in #49.

@anishathalye what do you think about adding meta/comment properties to the executors in 2.0? (As described  in https://github.com/anishathalye/dotbot/pull/1)

I updated casey/dotbot-user-study with a summary of the results. It may be of interest when figuring out what people are doing with dotbot and designing 2.0.

@scarfacedeb I'm not sure... If we can find a clean enough API, then I might not be opposed to it.

@casey Wow, that's really interesting. It'll certainly come in handy while working on the design of Dotbot 2.0.

Okay, I rewrote the first post to have a (continuously updated) summary of what's going on with the design and implementation for Dotbot 2.0.
This issue should be used for discussing the things mentioned in the first post and v2.0 in general.

Just thinking out loud about what the Dotbot 2.0 config file format might look like...
We can consider the following Dotbot 1.0 config (based on my current dotfiles config):
- clean: ['~', '~/.config']

- link:
    ~/.agignore: agignore
    ~/.dotfiles: ''
    ~/.gitconfig: gitconfig
    ~/.gnupg/gpg.conf:
      create: true
      path: gpg.conf

- shell:
  -
    command: git update-submodules # after linking ~/.gitconfig
    stdout: true

Here's a format that looks YAMLish but is cleaner for use with Dotbot:
defaults:
  link:
    relink: true

clean: ['~', '~/.config']

link:
  ~/.agignore: agignore
  ~/.dotfiles: ''
  ~/.gitconfig: gitconfig
  ~/.gnupg/gpg.conf: gpg.conf
    create: true

shell:
  - git update-submodules # after linking ~/.gitconfig
    stderr: true

So it's almost like the YAML, but there are some differences. At the toplevel, it's a list by default, and so there's no need to have a list with dictionaries of single elements inside. In addition, dictionaries map keys to values, but can have additional named properties attached. Same thing for arrays.
The changes aren't huge, but I think it significantly improves readability.
Unfortunately, this no longer maps cleanly to JSON/YAML. And it would require a custom parser. I wonder if there are any markup languages that support structures like this...
Another option is to use a Python DSL. Maybe it could look something like this:
from dotbot.dsl import *

clean([
  '~',
  '~/.config'
])

link.default(relink=True)
link({
  '~/.agignore': 'agignore',
  '~/.dotfiles': '',
  '~/.gitconfig': '',
  '~/.gnupg/gpg.conf': _('gpg.conf', create=True)
})

shell([
  _('git update-submodules', stderr=True)
])

We could also support more than one format, allowing either a declarative YAML (for simpler configs) or a Python DSL config (for more complicated setups).

Or something very different -- an S-expression based syntax:
(defaults
  (link (relink true)))

(clean '~' '~/.config')

(link
  ('~/.agignore' 'agignore')
  ('~/.dotfiles' '' (relink false))
  ('~/.gitconfig' 'gitconfig')
  ('~/.gnupg/gpg.conf' 'gpg.conf' (create true)))

(shell
  ('git update-submodules' (stderr true)))

As i started to busy myself with dotfiles i landed pretty quickly in your repository. What i liked is especially the aspect "DotBot is designed to be lightweight and self-contained, with no external dependencies and no installation required.". But i also find that including of DotBot itself as submodule goes again this principle. Because the configuration file is actually the only thing i'm interested in.
For this reason i wrote a little script "https://git.io/dotfiles.sh" which installs ones dotfiles repository from github e.g. "curl https://git.io/dotfiles.sh -L | sh -s anishathalye". DotBot is currently supported as installation method for the following configuration files:
.dotbot.yaml
dotbot.yaml
.dotbot.json
dotbot.json
.install.conf.yaml
install.conf.yaml
.install.conf.json
install.conf.json
For my personal dotfiles i use YAML format which covers my wishes entirely.

Huh, that's interesting to hear. Any idea how many people are using that tool?
In general, the curl pipe sh pattern is dangerous. It requires that you not only trust GitHub (with HTTPS, that's reasonable), but also that you trust the script, which could change at any time.
With including Dotbot as a submodule, you only need to trust GitHub. You don't even need to trust the Dotbot repo -- if you audit my code and add that as a submodule, if that code in the Dotbot repo later turned malicious somehow, the submodule hash wouldn't match.
So there is that tradeoff...

I only started using dotbot as of today after a desperate search for the ideal tool. Happy so far.
There's some good to be said for using a well-known format (YAML) over an SDL, especially if the latter doesn't bring that many advantages. The Lisp-like syntax looks horrible.
The Python DSL looks interesting. That'd just be a regular Python file right? Interesting for some more intelligent logic.

The current submodule pattern is good. It's self-contained. You clone/pull the repo and you're ready to install or update.
Logic in config files would be nice but I think there are only few cases where you would want it. If you want full blown logic you could just write everything in bash or any scripting language yourself and not use dotbot.
Creating new config language in my opinion is not a good idea. First of all it's overkill for something like this. Secondly it would just be another thing for the end-user to learn. The language should be something popular and not too verbose. Supporting multiple configuration languages is nice as long as it doesn't take too much time away from the main focus of the project.
As for me I think the install update process could be better. The errors could be better as well. It would be nice if dotbot provided manual actions with smart options. Like ask user what to do if file is already there. Users who want to fully automate everything should have a way to disable interactive execution.
Maybe dotbot could detect new dotfiles and help you automate moving them to your dotfiles repository and setting up links.
Basically all sorts of smart/interactive things would be nice additions and would bring more to the table than long discussions about favorite configuration format that people have.

If dotbot is easily usable as a Python module (not just through the CLI), people could design more complex setups directly in Python. That means you get the full power of Python and the ease of use of dotbot, without adding support for more complex configuration files.

@bchretien that's very good point I was also thinking about. If it was combination of CLI tool and library then you have the best of both. I also like the recent addition of plugins.

@rubenvereecken
I agree with your thoughts on YAML vs a DSL vs the Lisp-like syntax. And yeah, the Python DSL will be just a regular Python file.

@MaikuMori
Hmm, I guess I agree with your opinion about logic in config files... it might get out of hand, and then there's no more simplicity. And I also agree on not creating another config file language. If v2.0 supports YAML, then we might as well support JSON too; not sure about other formats.
What do you mean by the "install update process"?
Yeah, I agree that the error messages should be better. See #73.
Interactive execution is a cool idea. Adding to "features under consideration" above. See #74.
There's already a script @Vaelatern wrote for automating dotfiles setup: https://github.com/Vaelatern/init-dotfiles (it's linked in the readme for Dotbot). I don't think this functionality needs to be built into Dotbot itself, especially since it's probably a one-time thing.

@bchretien
Interesting idea! Adding to "features under consideration" above. See #75.

Regarding implementing default options (#34):
One solution that stays mostly true to vanilla YAML and JSON would be to parse defaults from a specially-formatted comment section at the top of a config file, similar to vim modelines:
#- dotbot-defaults:
#-  link:
#-    force: true
#-  shell:
#-    stdout: true

- link:
    ~/.vimrc: vimrc
- shell:
  - echo hi

This is a lighter solution than implementing a full custom YAML parser where everything is a list by default at the top level. We'd need only to read the file, pull the first few specially commented lines (if they exist), and then parse as regular YAML/JSON after striping the special chars.
The only downside to this approach is that we wouldn't be following strict JSON format if we allowed the same approach in JSON configs, since the JSON standard doesn't allow comments. But we can easily sanitize the comments out before passing the body of the config to a standard parser.
And this wouldn't be an issue with the proposed Python DSL, since we could just use a Python directive in that case. :stuck_out_tongue:
@anishathalye Thoughts? I could work on this and whip up a pull request.

This could be implemented using multi-document YAML streams using the '---' delimiters, to keep it pure YAML:
link-defaults:
  force: true
shell-defaults:
  stdout: true
---
- link:
    ~/.vimrc: vimrc
- shell:
  - echo hi

@casey Whoa, didn't even know that was a thing. This seems like the best approach, even if we break from standard JSON a bit.

@aykamko Yeah, YAML is pretty slick ^_^
JSON config files could be easily supported by splitting the document on --- lines, and then passing the chunks to the JSON parser.
I think this might be a really promising approach, since it's super simple, keeps YAML config files pure-YAML, only extends JSON config files a little bit, and should be backwards compatible with all previous config files.
Since defaults are a dictionary and directives are a list, the config parser can very simply validate a config file; it may be a single document containing a list of directives to run, or a stream of two documents where the first is a dictionary, which gets used as defaults, and where the second is a list of directives, to be run.
The algorithm would look like:
def parse_config(yaml_string):
  documents = parse_yaml(yaml_string)
  count = len(documents)
  if count == 0:
    sys.exit('config was empty')
  elif count == 1:
    directives = documents[0]
    run_directives(directives)
  elif count == 2:
    defaults = documents[0]
    directives = documents[1]
    apply_defaults(documents[0])
    run_directives(documents[1])
  elif count > 2:
    sys.exit('config had too many documents')
    # we could also allow more than two documents, so that
    # people could run multiple sets of directives with different
    # defaults, but it's probably best to forbid that until someone
    # asks for it

Hmm, that looks pretty good. Come to think of it, we could also do it like this as a single YAML document (and this way, it translates to JSON nicely too).
- defaults:
    - link:
      force: true
    - shell:
      stdout: true
- link:
    ~/.vimrc: vimrc
- shell:
  - echo hi

Pls use a default configuration format... YAML is good one, or just a simple INI or JSON. But please, please, a default one.
Isssue 73: What means "Improved error messages", exactly? I'm not THAT experienced with python, but i think that i could contribute it;
Backup the files too...

Currently, if there are errors while stuff is running, the error messages aren't super useful. #73 is meant to fix that.

Hey.
Sorry for the long time I didn't answer again.
What I meant is: What is, in your opinion, usefull? I.e.: "Link X can't be set up because of wrong rights in Directory Y, can't write"?
An example would be nice, as I can start with writing :-)

One feature that dotbot 1.0 lacks is ootb support for encrypting secrets. For instance, I'd love to be able to checkin my zshenv file, but it contains a couple of environment variables that define my identity on pushover. A plugin to use gpg to deal with these secets might be nice.
Then again - stuff like blackbox exists. So maybe dotbot doesn't need to reinvent the wheel?

Has anyone considered creating a pypi package to ship the dotbot CLI?

What use case were you thinking of? Since most people use dotbot to install
config files in repositories, and it's easy to get dotbot via submodules
(or the mercurial equivelant ) I'm not sure what usecase dotbot via pypi
would enable.
On Saturday, July 2, 2016, wayne<EMAIL_ADDRESS>wrote:

Has anyone considered creating a pypi package to ship the dotbot CLI?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/anishathalye/dotbot/issues/35#issuecomment-230089047,
or mute the thread
https://github.com/notifications/unsubscribe/AAAHmfpW26AFczJS5e3XWhoArk980IDdks5qRhSygaJpZM4ENu__
.

I'll go ahead and admit upfront I am bias against the use of submodules, mostly because of the layer of complexity they add to managing a git repo; I really just don't think they are a good alternative to any packaging system's dependency resolution system.
Aside from that, there is at least one workflow that may be somewhat difficult with the existing install and management approach, and that is managing dot files on multiple machines in a push-oriented fashion. With my current dotfiles repo I manage to do this with a complex combination of git CLI and ssh in scripts stored directly in the repo and I imagine something similar would be necessary for dotbot, especially given the tendency I have noticed in discussions here for folks not to consider things like git CLI, ssh, and pyyaml as dependencies and to prefer such purity when managing their dotfiles--my current difficult-to-manage bash-based approach was originally driven by a similar ethos.
Then there's the #75, which is requesting that dotbot be made available as a python library. If this happens the best way to distribute said library (in my opinion) would be as a pypi package, in which case why not also ship a CLI tool?

The nice thing with submodules is that the whole thing can be self contained. Installing dotfiles becomes a git clone ... && cd dotfiles && ./install, even on a fresh system without requiring installing any other software.
Though I have nothing against making Dotbot available as a PyPI package, as long as it doesn't affect the current preferred method of use.

It would also be nice to add support for defining packages to install (through apt/yum/etc.)
Right now I'm maintaining a separate script that installs vim/tmux/etc. and it makes sense to define these in dotbot

@adararnon there are a couple plugins that might help with that.

Tbh in my opinion setting up your server/pc (installing vim etc) should not be handled in your dotfiles anyways. Use something like ansible (or a simple bash script) for that.

Hey guys I would love to have encrypted files that automatically encrypt/decrypt using my GPG key. Should be fairly easy to add. (decrypt all files having .enc.gpg as trailing string into the same location and put those newly created files into .gitignore)

@Anachron You can accomplish that yourself using .gitattributes and filters:
https://gist.github.com/g-k/9087422
https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes

What do you think about adding file permissions? I'm thinking of using dotbot to manage my etcfiles, but not sure if that's feasible at the moment.

If there's demand for permissions, I'd be open to adding it (gotta balance simplicity with having more features)

@Anachron I just whipped up a yum plugin and listed it in the wiki here

@flyingchipmunk thanks but I was not looking for a yum plugin? :)
I was looking for a gpg one.

sorry tagged you by accident :)

Hey @anishathalye Any provision about that version? I would like help, your dotbot is great!

@angeliski I don't think there's any rush on the backwards-incompatible features. Everything else is being integrated into Dotbot 1.0 anyways.

@anishathalye Amazing!
I read about #57 , but now I see the #11 and can resolve my problem. Anyway, thanks for the great job. I will see I can help a any opened issue

@angeliski cool! always happy to integrate new functionality

Closing due to age / inactivity. Most of the issues discussed in the thread above have been resolved one way or another in the current version of Dotbot.
As I'm getting through more recent GitHub issues, especially the ones related to programming language constructions like conditionals, I'll keep in mind that a good solution might involve a Dotbot 2.0 that has a significantly different interface (perhaps as an alternative to the current YAML-based config file, but continuing to support the old syntax and actually being fully backwards-compatible).


Implement view, which returns set of unassigned issues.

(Open) unassigned issue is an issue, which nor closed nor assigned.


Do not put headers that are not in the SignedHeaders list in the canonical request

The SignedHeaders list is included in the Authorization header for a request.  Only include these headers and values in the CanonicalHeaders.
https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-header-based-auth.html describes which headers must be included in these.  The list is as follows:

HTTP host header.
If the Content-Type header is present in the request, you must add it to the CanonicalHeaders list.
Any x-amz-* headers that you plan to include in your request must also be added. For example, if you are using temporary security credentials, you need to include x-amz-security-token in your request. You must add this header in the list of CanonicalHeaders.

However, these are instructions for the client not the server.  The mc client does not include the content-type header in the SignedHeaders list.  According to the rules listed above, it should be included.  However, if we include it when calculating the signature we get a signature mismatch.
We should just include the headers that are in the SignedHeaders list.

The only question is does just including the headers that the client listed open up any security holes?

The fix for this has been merged.  Closing this issue.