Option to turn off location information

The README.md indicates that the tree is printed out in quite a clean way, but in reality, a lot of location information is added:
text: "[" (9:144-9:146, 278-280)

It would be nice to have an option to skip the printing of location information, as it clutters up the display significantly and is only useful in very specific debugging situations.

Can you provide more on why? https://raw.githubusercontent.com/syntax-tree/.github/master/.github/ISSUE_TEMPLATE/2-feature.md

I think the main reason is what I already said - the numbers take up more space than the actual content and make it hard to read / scan (I assume reading it is the main use case, specifically the structure of the tree, not the miscellanea like the exact locations of the nodes).

miscellanea like the exact locations of the nodes

In my opinion positional information is one of the greatest parts of unified. I often use this utility to quickly see those too.
If you’re not interested in positional information, would unist-util-remove-position work for your use case?

Whether seeing it is useful depends on which part of the pipeline you are working on - when doing tokenizers / parsers, of course it would be useful.
On the other hand, since I am (currently) working on processors that take chunks of nodes as input, there's no use for me knowing where those nodes are, rather it's all about the structure.
Yes, unist-util-remove-position would work, but it mutates the tree so it's not suitable as-is for debugging. Is there a suggested util to copy the tree?

Released in 6.0.0!


Extended information: Regular dex lookup

I request adding extended commands to /dex, showing us variant information in addition to or instead of regular info. For example /dex -breed 123 and possibly a shorthand /dex -b 123.
Breeding info.

Egg group (steps to hatch).
Egg moves, TM moves, leveling moves.

Evolution info.

To/from.
Method of each listed evolution.

Abilities.
Should describe all abilities and denote which one is Hidden.

Information about abilities have been added, as evolution chains and breeds are now seperate issues (#29 and #19) I will close this issue.


upgrade yarn, eslint, typescript etc,

yarn4
latest versions of eslint, typescript. prettier, etc.

closed by #21


Tracking Does Not Work w/ Some Recipients

Are there any related issues?

...
What operating system are you using?
...MAC OSX 10.11.4
What version of N1 are you using?
4.45
...

Bug?
Do you have any third-party plugins installed? Yes
...
Is the issue related to a specific email provider (Gmail, Exchange, etc.)? No
...
Is the issue reproducible with a particular attachment, message, signature, etc?

...

Feature Request?
Does this feature exist in another mail client or tool you use?
...

Why does email tracking, not work with some recipients?

@oldhickory30 Do you mean that they respond without triggering the open notification? That can happen with some email clients that block images.

Yes, that is correct. I have several recipients that I email often, that do
not trigger the  open notification.
How is that possible? Will there be anyway to get around that in the future.
![](https://link.nylas.com/open/ep5x1z03l7qa2mf9l06sgbubu/local-0310f74a-
bbaf?r=cmVwbHkrMDBmNmJkMjAwZGE3YTRjMjQ3Y2NkMTI5NjA5MDcwZDEzMzllZDhkZWJkZjJiMzY2OTJjZjAwMDAwMDAxMTM5ZTM5YjE5MmExNjljZTA5ZGI1NTllQHJlcGx5LmdpdGh1Yi5jb20=)
On Jul 13 2016, at 11:17 am, Jackie Luo<EMAIL_ADDRESS>wrote:

@oldhickory30
Do you mean that they respond without triggering the open notification? That
can happen with some email clients that block images.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on
GitHub,
or mute the
thread.

There are some cases in which the metadata requests fail on our end, which could be avoidable (merging that into #2570), but in the cases where someone has set their email client to block images, we can't tell if the email has been opened because no request has been made to our server!

so far the only request ive gotten was the GET  request for the challenge token:

Im not sure what im doing wrong here. i will also forward this to nylas support


No route specified, assuming route...

run:
web3 = ini_provider(bsc_wss) pancake = Uniswap(address=address, private_key=private_key, version=version, web3=web3, default_slippage=0.3, router_contract_addr=pan_router) tx = sell_token(busd, mint, 300000)
result:
No route specified, assuming route: ['0x1f3Af095CDa17d63cad238358837321e95FC5915', '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', '0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56'] 0x9aa3e852bfd743502b31a32b747bac658bcc9cb9ea8fc0832d925a9a8482cfc7
but i have added router_contract_addr,and successful transaction,why does it still appear: No route specified, assuming route
plz,help

Well, this message is just "for your information". Your sell_token() function calls make_trade() or make_trade_output(). These methods call pricing methods i.e. _get_token_token_input_price() for a reason. Pricing methods have optional parameter route. If this param is omitted then "No route specified" message is been shown.

thx for you help


[Feature] Prevent context click from changing document.activeElement

It would be great to avoid taking focus when the user right clicks the <ContextMenuTrigger />
I know this is probably impossible to achieve with the longpress action, but it would great if it were the case for right clicks.

Can you open a PR with the intended changes?

Not sure I'll ever find the time, but knowing that you're open to the PR I will at least try to. Thanks for your response!

@vkbansal @Slapbox
Expected - For example, right click on this text, and select copy -- the initially selected text remains selected in the browser.
Actual - When i right click on text where 'react-contextmenu' is activated, and selecting an option from the context menu, my initial selection is lost.

How can this be enabled, via an option to 'react-contextmenu'?
Or, which code files to edit so I can give a PR for this?

Thank you

@manoharreddyporeddy I believe event.preventDefault() is needed in here https://github.com/vkbansal/react-contextmenu/blob/master/src/ContextMenuTrigger.js#L38-L49
Preventing the focus from changing should be pretty easy, but will prevent users from using holdToDisplay  to open the menu.

Thanks for reply @Slapbox
@vkbansal
A - scenario
I actually have to select multi word text, and select a context menu option
for the same selection again, I have to select another context menu option
Now, this is not possible if previous selection is not persistent.
B. May be bug?
holdToDisplay is already set to -1
However, this issue remains.
May be event.preventDefault() should already be applied?
C. How to build?
thanks for showing the place to change to change
I could not find doc to build this app
can u help on - how to build the app library?

For building you can just npm run build
see https://github.com/vkbansal/react-contextmenu/blob/master/package.json#L28

@manoharreddyporeddy, event.preventDefault() in onMouseDown handler should prevent your text area from losing both focus and the current selection. If it's not, then some other logic is changing the element focus.
For testing's sake, what happens if you add event.preventDefault() here, before the if statement? Does this properly prevent the loss of focus?
If no, what if you use:
event.preventDefault();
return;

Obviously this will break the context menu completely, but it should not steal focus from your text area. If it still steals the focus, something weird is going on. Let me know how it goes!

@Slapbox @vkbansal
Thanks for trying to help.
npm run build dint create the dist directroy
npm run build:dist did create directory, but to use react-contextmenu.js I had to add 	/* eslint-disable */ at the begin of the file
Then already added above lines in various places in the same function.
After the suggestion give above was made, I was not able to select the text at all, which i dint want.
After trying this for 2 days, I am trying to not use the library - but unfortunately I have written a lot of code for this already - with demo time coming soon I am in a bit of problem trusting this library to take care of things.
I would like to ask one question:

**To build this context menu from scratch, using plain javascript, what are the resources you can give ? both links (external or internal to this library) & api (mdn or other) ** - no time for debugging this library for now sorry - quick help appreciated

Thank you

@manoharreddyporeddy I spent probably a bit over an  hour reviewing the available context menus for React. I'd strongly recommend focusing on solving the issue on this library rather than writing an entire new library. The solution should be pretty much as simple as event.preventDefault() in the right spot.
Did you try the two troubleshooting tips I suggested above? If you let me know the outcome of those two things that would be a big help in figuring out the problem. Unfortunately I don't have any advice whatsoever for building a context menu from scratch.

@Slapbox
I already answered your questions:

already added above lines in various places in the same function.
After the suggestion give above was made, I was not able to select the text at all, which i dint want.

Thanks for reply on unable to give advice on from scratch.
@vkbansal

@manoharreddyporeddy can you visually demonstrate what you're trying to achieve? I'm starting to question whether I understand properly.
Regarding how to make a context menu on your own, start with PopperJS or React-Popper (based on PopperJS).

Thanks for reply on unable to give advice on from scratch.

@manoharreddyporeddy I, like you, have a full-time job, family and responsibilities. I'm sorry that I was not able to help you. If you are not happy with this project, please go ahead and use some other project.
You must understand that 90% of such open-source projects are maintained by single person team, who take out some time from their free/family time to help others.
Here are some links for other packages that you can use:
https://www.telerik.com/kendo-react-ui/components/layout/menu/context-menu/
https://blueprintjs.com/docs/#core/components/context-menu
https://www.npmjs.com/search?q=contextmenu

@Slapbox
I have previously give the scenario already:

A - scenario
I actually have to select multi word text, and select a context menu option
for the same selection again, I have to select another context menu option
Now, this is not possible if previous selection is not persistent.

That means,
I have some text - that is wrapped in this libray

I select for example, 3 words
when I right click, on the selected text, a context menu appears
when i select an option in the context menu - the selection made previous (* above) disappears
That should not happen because, the I should be able to right click and get context menu - then select another option
In other words,   i need the text selected + 2 options from context menu I selected (from 2 right clicks)

this is same as if you have right clicked anywhere on browser text and selected "Copy"
then again right clicked anywhere on browser text and selected "Copy2"  (assuming we have Copy 2)
Since you din't ask a question, my assumption was you understood, it cost another day.
Please ask question if you din't understand - 2 time read of above you should be able to understand.

@vkbansal

@manoharreddyporeddy I, like you, have a full-time job, family and responsibilities. I'm sorry that I was not able to help you. If you are not happy with this project, please go ahead and use some other project.

It is obvious that open source is like that - single or some more person jobs
so I did not expect immediate action from you
but expected, at least you would hear & learn your user's problems
I did not expect a reply like the you did now
because it did not help recover my (your library's users) lost time, your kind of reply only added a bit of strain now on already strained user.

2 time read of above you should be able to understand.

@manoharreddyporeddy obviously English is not your first language. Your responses seem kind of rude. I'm sure you're stressed out, but when people try to help you, and when you are not a native speaker, you should not fault the reader for not understanding. I did ask a question, as soon as you wrote something that gave me reason to think I didn't understand.
I'm going to assume though that you don't mean to be rude, and that this is just a language barrier thing, so I have poked around a bit further.
The issue I have is that I lose focus when I click to open the context menu. It sounds like you're not losing focus until you actually click one of the menu items. If that's the case, the relevant code appears to be here:
https://github.com/vkbansal/react-contextmenu/blob/master/src/MenuItem.js#L78-L87
Add an onMouseDown=(event => event.preventDefault()} to that element and let me know how it goes.

@manoharreddyporeddy I think I did not say anything wrong here. I just pointed you to alternatives if this library is not a good solution for a problem.

Not stale. @vkbansal is there a way to prevent stalebot from wontfixing this?

I'll into removing stalebot.

closing issue see #339


Unable to copy/paste from ui log window in 2.7-head

Setup

Rancher version: v2.7-bae32412042cf2320edb828eea254feaecfed1da-head
Browser type & version: chrome Version 107.0.5304.121

Describe the bug

The logs in the ui are now able to be relocated around the ui - ie, click to move to left side of browser window; the logs, however, can no longer be copied with a highlight. ability to copy logs from window is a time saver and facilitates debugging
To Reproduce

create downstream rke1 cluster (observed this in k8s 1.25, but verified same behavior in k8s 1.24)
install logging
in log window that shows install status, try to click and highlight a log line
Result
unable to highlight, copy
Expected Result

able to copy, highlight
Screenshots

Additional context
workaround is to download the logs from the logging window, then highlight and copy text from downloaded logfile.

Closing as dupe of https://github.com/rancher/dashboard/issues/7524


Support OpenSearch v1.0.0

Description
Maps OpenSearch (currently v1.0.0) to Elasticsearch v7.10.2 to enable appropriate compatibility
Checklist

[x] I have reviewed the contributing guidelines.
[ ] I have included unit tests for my changes or additions.
[x] I have successfully run make test-docker with my changes.
[x] I have manually tested all relevant modes of the change in this PR.
[x] I have updated the documentation.
[x] I have updated the changelog.

Questions or Comments
I reviewed the tests and there aren't any covering existing version detection. Happy to add some but that would require some inventing that I assume the maintainers would have a strong opinion about.
~I have not modified any documentation, mainly because I am not sure how prominently you would want to voice that this project supports OpenSearch.~
Closes #482

I am still getting this error when trying to create the elastalert index, though my test rules are now working.
RequestError(400, 'illegal_argument_exception', 'Types cannot be provided in put mapping requests, unless the include_type_name parameter is set to true.')

Seems we'd need to swap the elasticsearch library as mentioned by https://github.com/jertel/elastalert2/issues/482#issuecomment-926272206

Regarding the documentation question, I don't see any reason not to mention OpenSearch. A line or two saying that the project is OpenSearch compatible somewhere on this page is probably sufficient.

Seems to be working rather well in my tests at this point

@nbrownus
I'm curious, so I'll ask you a question. In the case of opensearch, can't I get the value of es_client.info () ["version"] ["number"]? ..
If you can get 1.0, I think it is better to set 7.10.2 to esversion for 1.0. Considering when OpenSearch was upgraded in the future.
@ferozsalam
In addition, I plan to change to elasticsearch-py 8.0.0 when it supports elasticsearch 8, but probably OpenSearch will not be able to connect (the implementation should have been added in elasticsearch-py 7.14.0), so opensearch-py at that time I think it will be necessary to take measures to incorporate.

@nbrownus it looks like some dictionary accesses need to be modified to use get()/handle the lack of the distribution key better:
self = <elastalert.ruletypes.NewTermsRule object at 0x7fe85ec66bb0>

    def is_five_or_above(self):
        esinfo = self.es.info()['version']
>       if esinfo['distribution'] == "opensearch":
E       elastalert.util.EAException: Error searching for existing terms: KeyError('distribution')

A bug has been embedded. Isn't it terrible?
elastalert/create_index.py
bug
    esinfo = es_client.info()['version']
    if esinfo['distribution'] == "opensearch":
        # OpenSearch is based on Elasticsearch 7.10.2, currently only v1.0.0 exists
        # https://opensearch.org/
        esversion = "7.10.2"
    else:
        esversion = esinfo['version']

Please correct.
    esinfo = es_client.info()['version']
    if esinfo['distribution'] == "opensearch":
        # OpenSearch is based on Elasticsearch 7.10.2, currently only v1.0.0 exists
        # https://opensearch.org/
        esversion = "7.10.2"
    else:
        esversion =  esinfo["number"]

   print("Elastic Version: " + esversion)

elastalert/ruletypes.py
bug
        esinfo = self.es.info()['version']
        if esinfo['distribution'] == "opensearch":
            # OpenSearch is based on Elasticsearch 7.10.2, currently only v1.0.0 exists
            # https://opensearch.org/
            return True
        else:
            return int(esinfo['version'][0]) >= 5

Please correct.
        esinfo = self.es.info()['version']
        if esinfo['distribution'] == "opensearch":
            # OpenSearch is based on Elasticsearch 7.10.2, currently only v1.0.0 exists
            # https://opensearch.org/
            return True
        else:
            return int(esinfo['number'][0]) >= 5

base_test.py
Line 848
mock_es.info.return_value = {'version': {'number': '2.0'}}
↓
mock_es.info.return_value = {'version': {'number': '2.0', 'distribution': ''}}
*conftest.py
Line 70
self.info = mock.Mock(return_value={'status': 200, 'name': 'foo', 'version': {'number': '2.0'}})
↓
self.info = mock.Mock(return_value={'status': 200, 'name': 'foo', 'version': {'number': '2.0', 'distribution': ''}})
Line 90
self.info = mock.Mock(return_value={'status': 200, 'name': 'foo', 'version': {'number': '6.6.0'}})
↓
self.info = mock.Mock(return_value={'status': 200, 'name': 'foo', 'version': {'number': '6.6.0', 'distribution': ''}})
rules_test.py
Line 570, 622, 640, 665, 735, 772
mock_es.return_value.info.return_value = {'version': {'number': '2.x.x'}}
↓
mock_es.return_value.info.return_value = {'version': {'number': '2.x.x', 'distribution': ''}}

It is very dangerous if you do not check if it works properly with elasticsearch 7.x as well as opensearch before merging.

@ferozsalam @jertel
Is there anything else you care about?

I want to try it first with my ES cluster before it gets merged. If I get time this weekend I'll do that and merge it in if it looks good.

No concerns from me, thanks!

I've tested against ES 7.x and did not encounter problems. However, I then tested against a brand new AWS OpenSearch cluster and encountered two problems:

The first time I ran ElastAlert 2 and it tried to create the indices it failed with the same error that @nbrownus posted here https://github.com/jertel/elastalert2/pull/483#issuecomment-926284453. Running it again seemed to get past that point, probably since at least some of the indices had been created successfully.
Next, the ElastAlert 2 process aborted due to a parsing error while querying the elastalert_status index just a few seconds after starting up. The request and response are below:

2021-09-25 18:38:27,506    DEBUG        elasticsearch > {"query":{"query_string":{"query":"!_exists_:aggregate_id AND alert_sent:false"}},"filter":{"range":{"alert_time":{"from":"2021-09-23T18:38:27.412062Z","to":"2021-09-25T18:38:27.412085Z"}}},"sort":{"alert_time":{"order":"asc"}}}
2021-09-25 18:38:27,506    DEBUG        elasticsearch < {"error":{"root_cause":[{"type":"parsing_exception","reason":"Unknown key for a START_OBJECT in [filter].","line":1,"col":92}],"type":"parsing_exception","reason":"Unknown key for a START_OBJECT in [filter].","line":1,"col":92},"status":400}

Based on my short time testing I'd say that more work is still needed to allow ElastAlert 2 to work with OpenSearch. But since this is a step forward and isn't breaking existing functionality I'll proceed with the merge.

Quick follow-up: After reviewing the problem reported in #487 I realize my previous test must have been invalid, and likely wasn't using the correct code from this PR. After correcting the issue in #487 and re-testing I was able to successfully start ElastAlert 2 against another brand new AWS OpenSearch cluster. Both index creation and rule processing were successful, as well as elastalert-test-rule. I'll leave the documentation as-is, so that it continues to annotate OpenSearch as "Under development" while we get more feedback on this. Thanks everyone for their contributions, reviews, and testing.

@louzadod
I don't know because I don't use OpenSearch, but it is rejected when connecting to OpenSearch. I think you should ask questions in the OpenSearch community as follows: It's just a guess from here, but I think it's a problem with setting up OpenSearch security plugins.
https://discuss.opendistrocommunity.dev/t/no-permissions-for-cluster-monitor-main/2791


Embed web resources

Fixes #196

Still need to verify and update containers/docker-compose if needed.

Codecov Report

Merging #213 (7955913) into main (c3ca7b5) will decrease coverage by 0.24%.
The diff coverage is 89.47%.

@@            Coverage Diff             @@
##             main     #213      +/-   ##
==========================================
- Coverage   91.11%   90.87%   -0.25%
==========================================
  Files          38       38
  Lines        1699     1698       -1
==========================================
- Hits         1548     1543       -5
- Misses        106      109       +3
- Partials       45       46       +1

Impacted Files
Coverage Δ

pkg/admin/admin.go
100.00% <ø> (ø)

pkg/admin/orchestrator_client.go
87.91% <ø> (ø)

pkg/websupport/web_support.go
83.72% <ø> (-0.37%)
:arrow_down:

cmd/demo/demo.go
82.05% <69.23%> (-4.26%)
:arrow_down:

cmd/admin/admin.go
86.66% <100.00%> (-2.23%)
:arrow_down:

cmd/democonfig/democonfig.go
90.47% <100.00%> (-0.30%)
:arrow_down:

pkg/admin/applications.go
100.00% <100.00%> (ø)

pkg/admin/integrations.go
79.54% <100.00%> (ø)

pkg/admin/status.go
100.00% <100.00%> (ø)

pkg/websupport/view_support.go
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c3ca7b5...7955913. Read the comment docs.

@barinek It was mentioned that the static resources were being loaded to the containers. I wasn't able to figure out how that was being done.

pack and docker compose are working as expected


Data explorer: Empty bucket, deleting last card throws an error

to repro, delete your .influxdbv2 folder
go through onboarding
do not load any data
go to data explorer
delete the card that says no tags found

Confirmed that this is still reproducible on master

Similar to the query editor where a user cannot remove the only tab do we want to prevent removal of the only tag card in the explorer? @russorat @alexpaxton

see #11012


CRD that can reserve ip via annotation

Bug Report
Expected Behavior
I created a test CRD using KubeBuilder.  I'd like for this CRD to be able to reserve an address in an ippool via spec.template.metadata.annotations.ovn.kubernetes.io/ip_pool: $macaddr
Actual Behavior
No address is allocated.
CRD Definition
apiVersion: webapp.my.domain/v1
kind: Guestbook
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"webapp.my.domain/v1","kind":"Guestbook","metadata":{"annotations":{},"name":"testwithaddr","namespace":"default"},"spec":{"foo":"baz","template":{"metadata":{"annotations":{"ovn.kubernetes.io/ip_pool":"52:54:00:b6:31:12"}}}}}
  creationTimestamp: "2024-03-06T05:38:05Z"
  generation: 4
  name: testwithaddr
  namespace: default
  resourceVersion: "1167788"
  uid: f68715d0-fcf7-42b3-bd21-a07343101a6c
spec:
  foo: baz
  template:
    metadata:
      annotations:
        ovn.kubernetes.io/ip_pool: 52:54:00:b6:31:12

IPPOOL
~ ❯❯❯ k get ippool testpool -o yaml
apiVersion: kubeovn.io/v1
kind: IPPool
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"kubeovn.io/v1","kind":"IPPool","metadata":{"annotations":{},"name":"testpool"},"spec":{"ips":["<IP_ADDRESS>/24"],"namespaces":["kube-system","default"],"subnet":"ovn-default"}}
  creationTimestamp: "2024-03-06T04:29:07Z"
  generation: 2
  name: testpool
  resourceVersion: "1150253"
  uid: 263a2855-0122-4df4-bcd8-61dbf80c333c
spec:
  ips:
  - <IP_ADDRESS>/24
  namespaces:
  - kube-system
  - default
  subnet: ovn-default
status:
  conditions:
  - lastTransitionTime: "2024-03-06T04:29:07Z"
    lastUpdateTime: "2024-03-06T04:29:07Z"
    reason: UpdateIPAMSucceeded
    status: "True"
    type: Ready
  - lastTransitionTime: "2024-03-06T04:29:07Z"
    lastUpdateTime: "2024-03-06T04:29:07Z"
    message: Not Observed
    reason: Init
    status: Unknown
    type: Error
  v4AvailableIPRange: <IP_ADDRESS>-<IP_ADDRESS>
  v4AvailableIPs: 256
  v4UsingIPRange: ""
  v4UsingIPs: 0
  v6AvailableIPRange: ""
  v6AvailableIPs: 0
  v6UsingIPRange: ""
  v6UsingIPs: 0

Subnet
~ ❯❯❯ k get subnet ovn-default -o yaml
apiVersion: kubeovn.io/v1
kind: Subnet
metadata:
  creationTimestamp: "2024-03-04T23:14:17Z"
  finalizers:
  - kube-ovn-controller
  generation: 1
  name: ovn-default
  resourceVersion: "1123164"
  uid: fbe29482-4196-4bf4-8cdb-910eec7af688
spec:
  cidrBlock: <IP_ADDRESS>/16
  default: true
  enableLb: true
  excludeIps:
  - <IP_ADDRESS>
  gateway: <IP_ADDRESS>
  gatewayNode: ""
  gatewayType: distributed
  natOutgoing: true
  private: false
  protocol: IPv4
  provider: ovn
  vpc: ovn-cluster
status:
  activateGateway: ""
  conditions:
  - lastTransitionTime: "2024-03-04T23:14:19Z"
    lastUpdateTime: "2024-03-04T23:21:39Z"
    reason: ResetLogicalSwitchAclSuccess
    status: "True"
    type: Validated
  - lastTransitionTime: "2024-03-04T23:14:19Z"
    lastUpdateTime: "2024-03-04T23:14:19Z"
    reason: ResetLogicalSwitchAclSuccess
    status: "True"
    type: Ready
  - lastTransitionTime: "2024-03-04T23:14:19Z"
    lastUpdateTime: "2024-03-04T23:14:19Z"
    message: Not Observed
    reason: Init
    status: Unknown
    type: Error
  dhcpV4OptionsUUID: ""
  dhcpV6OptionsUUID: ""
  natOutgoingPolicyRules: []
  u2oInterconnectionIP: ""
  u2oInterconnectionVPC: ""
  v4availableIPrange: <IP_ADDRESS>-<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>-<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>-<IP_ADDRESS>,<IP_ADDRESS>-<IP_ADDRESS>
  v4availableIPs: 65491
  v4usingIPrange: <IP_ADDRESS>-<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>-<IP_ADDRESS>,<IP_ADDRESS>-<IP_ADDRESS>,<IP_ADDRESS>-<IP_ADDRESS>,<IP_ADDRESS>-<IP_ADDRESS>,<IP_ADDRESS>-<IP_ADDRESS>,<IP_ADDRESS>-<IP_ADDRESS>
  v4usingIPs: 42
  v6availableIPrange: ""
  v6availableIPs: 0
  v6usingIPrange: ""
  v6usingIPs: 0

Steps to Reproduce the Problem

Create a CRD with kubebuilder
Extend the Spec to include spec.templates.metadata.annotations
Apply a CRD with an annotation

Additional Info

Kubernetes version:
Output of kubectl version:

~ ❯❯❯ kubectl version
Client Version: v1.29.2
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.29.0+rke2r1

- kube-ovn version:

```bash
version: v1.12.7

I think you can use ip pool to reserve a set of  IP first.
and then use the IP from it on your own apps.

Good Day @bobz965, @zhangzujian
I will try to clarify what I am attempting to do.
Currently were have a Go application that NetBoots Machines.  In order to do this,  the application runs a DHCP server, and the application is in charge of pushing down the correct IPXE config with the correct information to join our Cluster running KubeOVN.    The Go application DHCP Server would use KubeOVN IPAM to serve addresses for my host networks.
I'd like to create a set of CRDs that define "Machines" that use KubeOVN IPAM for reserving addresses for my physical machines.   I've boot strapped a simple demo controller to test the functionality of reserving / marking addresses in-use on a subnet.    Machines also would keep aggregation / bond information etc... but that isn't relevant to KubeOVN.
I'd like for these addresses to be shown as "in use"....
they will be the addresses used for:
The underlay interface
The internal node-ip
The external node-ip
A Storage network addr.
In this scenario,  what approach would you take?  I've seen several notes in the documentation about using annotation from any CRD but the code doesn't seem to be written in this manner,  unless I misread or am mistaken.

I'd like for these addresses to be shown as "in use"....

Not supported in Kube-OVN currently.

You can create IP CRs to "mark" the ip as in use:
apiVersion: kubeovn.io/v1
kind: IP
metadata:
  finalizers:
  - example.com/dhcp-server # your controller
  labels:
    ovn-default: ""
    ovn.kubernetes.io/ip_reserved: "true"
    # ovn.kubernetes.io/node-name: kube-ovn-control-plane
    ovn.kubernetes.io/subnet: ovn-default
  name: dhcp-ip1
spec:
  # attachIps: []
  # attachMacs: []
  # attachSubnets: []
  # containerID: ""
  ipAddress: <IP_ADDRESS>
  # macAddress: 00:00:00:ED:91:0D
  # namespace: ""
  # nodeName: kube-ovn-control-plane
  # podName: kube-ovn-control-plane
  podType: VirtualMachine
  subnet: ovn-default
  v4IpAddress: <IP_ADDRESS>
  # v6IpAddress: ""

You can create IP CRs to "mark" the ip as in use:
apiVersion: kubeovn.io/v1
kind: IP
metadata:
  finalizers:
  - example.com/dhcp-server # your controller
  labels:
    ovn-default: ""
    ovn.kubernetes.io/ip_reserved: "true"
    # ovn.kubernetes.io/node-name: kube-ovn-control-plane
    ovn.kubernetes.io/subnet: ovn-default
  name: dhcp-ip1
spec:
  # attachIps: []
  # attachMacs: []
  # attachSubnets: []
  # containerID: ""
  ipAddress: <IP_ADDRESS>
  # macAddress: 00:00:00:ED:91:0D
  # namespace: ""
  # nodeName: kube-ovn-control-plane
  # podName: kube-ovn-control-plane
  podType: VirtualMachine
  subnet: ovn-default
  v4IpAddress: <IP_ADDRESS>
  # v6IpAddress: ""

yeah, the IP CR exists, which means it is used from a subnet or an ip pool.

Awesome I think this will work out just fine then.  Thank you so much for your time and patience.


Fix/transaction count

Fixes:
This closes #419 by modifying how OTKs that need to be cleaned up are deleted and counted from the database.
Previously we would count all OTKs to be deleted, attempt to delete, and then persist counts of deleted OTKs. This caused an issue were deleted keys were being counted more then once.
Description of what your PR accomplishes:
Breaks up the expiration worker deletion so it now counts and deletes Expired, Exhausted, and Unclaimed OTKs separately.
The count and deletion now occur in a transaction this should prevent the race condition that was previously found in this worker.
Why this approach? Any notable design decisions?
This was the simplest approach without having to modify our ATO.
We also could have broken the expiration worker out into a microservice/lambda that runs on a schedule and runs cleanup tasks but this would have created a modification to the approved architecture and potentially require a modification of ATO. Arguably this is the "better" solution for this problem, we will add it to the backlog to work on if time permits.
Anything the reviewers should focus on? Any discussion points?
Make sure it actually works and test coverage is sufficient.

No Code review but functionality tests passed:
6 new keys generated, then backdated 24 hours:

5 new keys generated and claimed, then remaining_keys set to 0 (aka exhausted):

5 new keys generated and claimed, then backdated more than 15 days:

events table show all the correct counts for creation, claiming, and deletion events

No Code review but functionality tests passed:
6 new keys generated, then backdated 24 hours:

5 new keys generated and claimed, then remaining_keys set to 0 (aka exhausted):

5 new keys generated and claimed, then backdated more than 15 days:

events table show all the correct counts for creation, claiming, and deletion events


Impersonation errors on cluster deletion (harvester)

https://jira.suse.com/browse/SURE-8521
Issue description:
A customer saw impersonation errors when he tried to delete a guest cluster. The customer is a project member (not a project admin). The guest cluster was an 8-day old test cluster.
The VMs in Harvester were already deleted, but the cluster was in the "Remove" state in Rancher. The customer tried to delete various objects in the cluster, but all were unsuccessful.
What did we try:
Create a new harvester cluster credential and assign it to the removing cluster.
Log out + log in again to Rancher and delete again.
Start Rancher in Incognito window and delete again.
Refreshing Group membership
Force delete the remaining node objects. See the error screenshot.
In the end, a Rancher admin removed the stale node objects with "Force delete". After the node objects were removed, the cluster deletion continued and finished successfully. The described actions happened on the 16th of May between 14:32 and 16:30 CEST.
Business impact:
Impersonation error on cluster deletion blocks resources in the customer environment and requires admin manual intervention.
Troubleshooting steps:
The issue matches what was previously reported in https://jira.suse.com/browse/SURE-5748 but as this is not a reproducible random issue, the case was closed. The suggestion to collect data from a cluster before deletion is extremely difficult and the customer is also not sure about the benefit of guest cluster information for debugging.
The logs (in jira) show what we reported in that case before:
GH issue related to previous Jira: https://github.com/rancher/rancher/issues/36096
I also see some bits mentioned in this GH issue like:
So far I was not able to fully reproduce the issue. I can share details of deployment if someone wants to try, but I'll continue and update Jira in case I get something useful.
Actual behavior:
There was an "impersonation error" on cluster deletion and admin action was required.
Expected behavior:
The customer should be able to delete the guest cluster without impersonation errors
Files, logs, traces:
Supportbundle, rancher cluster logs, screenshots

we should backport this to 2.10 and potentially 2.9


SQL Server 2019 Windows Docker containers not generally available

SQL Server 2019 is generally available since this week (Monday November 4.) , including Linux Docker containers. The Windows Docker containers are not.

SQL Server 2019 Windows containers continue to be in Private Preview. Please sign up for preview access at https://aka.ms/sqleap


Add flags

Overview

Add flags for:

Verbose to ignore unnecessary stdouts.
DType to select gorgonia dtype from float32|float64.
Profile to run with pprof.

Coverage increased (+0.9%) to 57.367% when pulling cec17651371db5091945d95745974bd17443a1eb on addflag into 3cc0352136b4a75264d3d3160eeeed0858a45f70 on develop.

Coverage increased (+0.9%) to 57.367% when pulling cec17651371db5091945d95745974bd17443a1eb on addflag into 3cc0352136b4a75264d3d3160eeeed0858a45f70 on develop.

Coverage increased (+0.9%) to 57.367% when pulling cec17651371db5091945d95745974bd17443a1eb on addflag into 3cc0352136b4a75264d3d3160eeeed0858a45f70 on develop.

Coverage increased (+0.9%) to 55.904% when pulling 4dc9be3744bd9106901df038a58d70ecaf963630 on addflag into fe45ffc19e4d1f74574e4db8a45f2d282cfc8621 on develop.

Coverage increased (+0.8%) to 52.179% when pulling 4a58eb9693c28a5b3ce6eb6e54590ae2f5e88e2f on addflag into 9a7942937550d84187c6c777abdd21be08141bd2 on develop.

state.go is more complicated than before...

Coverage decreased (-3.6%) to 47.803% when pulling 0d0909bdab7bb66d40ff0bd31516bb5ffc9302e1 on addflag into 9a7942937550d84187c6c777abdd21be08141bd2 on develop.

Coverage decreased (-3.6%) to 47.803% when pulling 0d0909bdab7bb66d40ff0bd31516bb5ffc9302e1 on addflag into 9a7942937550d84187c6c777abdd21be08141bd2 on develop.

Coverage decreased (-0.9%) to 50.523% when pulling a04b442dea1f02da639097faa255857865b94edd on addflag into 9a7942937550d84187c6c777abdd21be08141bd2 on develop.

merge to master directly

Coverage decreased (-0.9%) to 50.523% when pulling 9a538232459b07f27b595ed346ebda884db01d53 on addflag into 9a7942937550d84187c6c777abdd21be08141bd2 on master.

Coverage decreased (-0.9%) to 50.523% when pulling 9a538232459b07f27b595ed346ebda884db01d53 on addflag into 9a7942937550d84187c6c777abdd21be08141bd2 on master.

Coverage decreased (-0.9%) to 50.523% when pulling 8e1788ee28a1a3192563479dd0e631085792c374 on addflag into 9a7942937550d84187c6c777abdd21be08141bd2 on master.

LGTM.
One note on potential optimization (not necessary, but good to keep in mind): instead of *model.Type being passes around, why not just model.Type. This reduces the chance that your code may be accidentally overwriting the Dtype or Engine

I got it, thanks.


Can't connect to server

Server show's offline. Logs from server
FIG FILES CREATED. WAIT FOR ANOTHER 40 SECONDS TO MAKE SURE ALL CHANGES WERE APPLIED...
CONFIG FILE DIR CHANGED change AstroServerSettings.ini
CONFIG FILE DIR CHANGED rename GameplayTags.ini
CONFIG FILE DIR CHANGED change GameplayTags.ini
CONFIG FILE DIR CHANGED change GameUserSettings.ini
CONFIG FILE DIR CHANGED change GameUserSettings.ini
CONFIG FILE DIR CHANGED change GameUserSettings.ini
CONFIG FILE DIR CHANGED change GameUserSettings.ini
CONFIG FILE DIR CHANGED change AstroServerSettings.ini
CONFIG FILE DIR CHANGED change AstroServerSettings.ini
CONFIG FILE DIR CHANGED change AstroServerSettings.ini
CONFIG FILE DIR CHANGED change AstroServerSettings.ini
CONFIG FILE DIR CHANGED change AstroServerSettings.ini
CONFIG FILE DIR CHANGED change AstroServerSettings.ini
CONFIG FILE DIR CHANGED change GameUserSettings.ini
CONFIG FILE DIR CHANGED change GameUserSettings.ini
ON ERROR: 0024:fixme:advapi:DeregisterEventSource (00000000CAFE4242) stub
child process exited with code 0
DONE
CONFIG FILES WERE CREATED.
HEALTH CHECK STOPPED!
BACKUP STOPPED!
--------------SERVER STOP DONE--------------
child process close all stdio with code 0
GOING TO UPDATE THE SERVER CONFIGURATION BASED ON CURRENT ENV VARIABLES...
PUBLIC IP IS:  ****
INIT BACKUP...

I noticed the same after a server update a while ago.
In most cases restarting the container did solve the problem.
However.. I just published a new version of the Image (2.x) that uses proton instead of wine which seems to work but i did not test it over a longer period of time...
Be aware that the current dedicated server version does not support the new DLC (Glitchwalker): https://blog.astroneer.space/p/astroneer-glitchwalkers/
Hope System Era will add support for the DLC but this may take a while...

I tested the latest image, unfortunately, the game still says it's offline. IDK if the dedicated server prints any log.

This seems like the PublicIP field in AstroServerSettings.ini is set to the wrong value. Make sure it is set to the same public IP you entered into the server checker.

This seems like the PublicIP field in AstroServerSettings.ini is set to the wrong value. Make sure it is set to the same public IP you entered into the server checker.

It is the same value. For further details, I am hosting the server on my Linux PC, port forwarding configured on my router (the router gets the public up). This setup worked for other games I have played, but somehow failed to work for Astroneer.

This seems like the PublicIP field in AstroServerSettings.ini is set to the wrong value. Make sure it is set to the same public IP you entered into the server checker.

It is the same value. For further details, I am hosting the server on my Linux PC, port forwarding configured on my router (the router gets the public IP). This setup worked for other games I have played, but somehow failed to work for Astroneer.

Ok, if the IP matches, does rhe port in the config also match the one you're putting into the server checker. Public and Private port also have to match.
Also check that the Heartbeat Interval is not 0.

Also check that the Heartbeat Interval is not 0.

Where can I find this setting?

Thanks @JoeJoeTV for your help, appreciate.
@KrisCris Did you set the IP Address via ENV variable or did you let the server determine your current ip address?

Thanks @JoeJoeTV for your help, appreciate.
@KrisCris Did you set the IP Address via ENV variable or did you let the server determine your current ip address?

I am using the env, can verify that the ip is indeed written into the file.

Thanks @JoeJoeTV for your help, appreciate.
@KrisCris Did you set the IP Address via ENV variable or did you let the server determine your current ip address?

I am using the env, can verify that the ip is indeed written into the file.

Are you using the provided docker-compose file and if yes, did you change anything?

Are you using the provided docker-compose file and if yes, did you change anything?

Thanks for the help! I think I have solved the issue.
The main issue causing the Server is experiencing issue on that checker page is the docker port mapping - the game has to run on the port you exposed to the public, mapping it to a different port will cause issue.
Then, you can only join the game with the IP configured on the server, no local IP or things like that.
Finally, the NAT Loopback was somehow broken with my current network configuration. Idk why my network switch caused the issue, but as soon as I plugged the ethernet cable directly onto the router, everything worked out.
Hopefully this can also be helpful to ppl facing similar issues.

@KrisCris Yes the server can only be joined via pulic ip / port as there is no dns resolution implemented (and i don't think that they are going to implement that in future).
Not sure if i understood you right with the port mapping but there was an issue with the docker-compose file that always exposed port 8777. I Already fixed this in the latest develop. It should now expose the port configured in .env if one is defined.

Not sure if i understood you right with the port mapping

So for example if the server is using 8777, then you do 12345:8777, which doesn’t work. I am not sure why would this happen, but you have to match the internal port and the one exposed: set the port env to 12345, then 12345:12345

I am not sure why would this happen, but you have to match the internal port and the one exposed: set the port env to 12345, then 12345:12345

the server being unable to connect via a private ip address, like 192.168.x.x, kinda sucks.

Just to explain a bit, why this happens:
The cause is just how the dedicated server system for Astroneer is build. It's more complicated in comparison to e.g. a Minecraft dedicated server, where you just have an application listening on a port which the client connects to.
For Astroneer there is 3 components: The game client, the dedicated server and the 3rd party Playfab service.
When the dedicated server starts, it will start listening on the game port (e.g. 7777) on the UDP protocol for any interface AND register itself as a running server with the Playfab service, passing along it's "URL", which is the IPv4 address in the PublicIP field and the port separated by a colon.
Additionally, the server won't start when given a local range IPv4 address.
It will then regularly send heartbeat messages to Playfab, telling it that it's still online and its status (player counter, etc.).
When a game client now wants to connect to the server, it first asks Playfab about the entered "URL" (again IP:Port) and the server's details. If nothing is there, the server will show as offline and if it gets something , it will display the server as online and show the player count from Playfab.
If the server is online, the player can click to join and only then will the game try to connect to the dedicated server itself via the URL given by Playfab (so the public IP and game port).
Because of this, the IP has to be the public one and the local and public port must match.
NOTE: This is how I understood the system from asking other people, trying out and writing AstroTuxLauncher, since there is no official documentation on any of this currently, so some things may be not fully accurate.

https://github.com/barumel/docker-astroneer-server/issues/6#issuecomment-2496511185
Thanks for the explanation!


Distribute node etcd certificates like it's done in kubernetes/secrets

Fixes #3464 for me.

ci check this

Hello. Is there any prevision timeline to merge this one?

@mirwan Do you have any strings to pull at the Linux Foundation so that they will reply to my email of October 9th so that I can sign the CLA?

@bartlaarhoven what's the issue with signing CLA ? do you have git commit with same email you are trying to sign CLA ?

@bartlaarhoven what's the issue with signing CLA ? do you have git commit with same email you are trying to sign CLA ?

Nope, I've changed my email address as I want to sign a corporate CLA for this and this account was linked to my personal email account.

Nope, I've changed my email address as I want to sign a corporate CLA for this and this account was linked to my personal email account.

the CLA robot is matching the email signed in the CLA and the email in the commit.
So you can either resign the CLA and or amend the commit author

Nope, I've changed my email address as I want to sign a corporate CLA for this and this account was linked to my personal email account.

the CLA robot is matching the email signed in the CLA and the email in the commit.
So you can either resign the CLA and or amend the commit author

Thanks. I have received a corporate CLA to sign at Hellosign, but in that CLA is the wrong email address. So I've sent an email to the helpdesk at<EMAIL_ADDRESS>to get a new CLA with the different email address but got no response. Until then, I can't do anything (or I can't find where to request a new CLA at the correct email address)

can't you amend the commit with the email that match the cla ?
git commit  --amend --author="John Doe<EMAIL_ADDRESS>

Nope, because I haven't signed the CLA yet as it has the wrong email address in it...

@bartlaarhoven Any chance you can sign the CLA?

It took a while, but apparently I sent an email to a unmonitored address and didn't get any error or notification about that. But the good news: I've just (2 minutes ago) signed the CLA.

@bartlaarhoven I believe you need to post a comment with "I signed it" in order to CLA bot to take action.

I signed it

/approve
/lgtm

@ant31 What is wrong with the pipeline here? Does it need rebase?


[Bug]: Smithed crafter shaped recipes are scuffed

Describe the bug
Shaped recipes are... strange
To Reproduce
Steps to reproduce the behavior:

Add a recipe in shovel shape
Try to craft it in the heavy workbench
We see it's working as expected
Add items on the sides

Expected behavior
The recipe is invalid, but it's not
Screenshots and/or Videos
Shovel crafting

Details
Server/Client
Platform: Vanilla server 1.21.4
Mods: None
Other Packs: Smithed Crafter
Version: v0.6.2 (latest)
Additional context
Datapack used:
ImagineYourCraft_datapack_with_libs.zip

It fixes when I add additional air checks in the recipe


Allow extra user keywords

E.g. for a subreddit that might want to award on multiple generic phrases like "thanks" or "thank you".

It would be nice if it supported regex expressions.

@Y-T-G the next version will have Regex support as well as multiple keywords.


Cert Renewal (Expires November 6th) - WALLY

Describe the task
Entrust Certificate expired August 30, 2023. Certbot was down so we implemented a Let's Encrypt Cert for 90 days while we wait to see if Certbot will be fixed. if Certbot is fixed we will need to renew an entrust cert then we proceed, if certbot is not up we will have to decide what our path forward is at that point.
Purpose
This is required so that the end user doesn't experience a "your connection is not private" warning message (even though they can still click through and use the application).
Acceptance Criteria

[ ] iStore request created with billing information
[ ] Certificate is renewed and end user arrives at homepage with no warning message displayed

Additional Context

Need to look into why it doesn't send notifications to the Sustainment Team inbox about renewals, etc.
Might need to look into billing and duplicate request

Check status of Entrust/CertBot at the beginning of October so there's some lead time before cert expires.

For temporary certificate renewals: https://apps.nrs.gov.bc.ca/int/confluence/display/DEVGUILD/Generating+a+CSR?

Sent an email to<EMAIL_ADDRESS>regarding next steps.
According to the Confluence page, it seems like we can use the steps under “Host on Openshift” to start the renewal process and generate the cert manually. However, we also noticed on another page that domains using “.nrs.gov.bc.ca” are handled automatically by the NRIDS Infrastructure MiddleTier team.

Sent an email to<EMAIL_ADDRESS>regarding next steps.
According to the Confluence page, it seems like we can use the steps under “Host on Openshift” to start the renewal process and generate the cert manually. However, we also noticed on another page that domains using “.nrs.gov.bc.ca” are handled automatically by the NRIDS Infrastructure MiddleTier team, so it might not require too much work on our end.

Jake to get TCA Account Code and expense authority

NRIDS accepted the request, and forwarded their request through My Service Center (REQ0441920). CC'd Sustainment Team's email for notification.

Successfully updated WALLY's certs and keys to use Entrust. The certificate is good until Oct. 30th, 2024.
Private Zenhub Image

Successfully updated WALLY's certs and keys to use Entrust. The certificate is good until Oct. 30th, 2024. There are steps to creating a certificate in the Sustainment Team's Dev Chat Files called "Cert Renewal.docx"
Private Zenhub Image

Successfully updated WALLY's certs and keys to use Entrust. The certificate is good until Oct. 30th, 2024. There are steps to creating a certificate in the Sustainment Team's Dev Chat Files called "Entrust Cert Creation.docx"
Private Zenhub Image


Thresholded metrics

Linked issue(s):
What change does this PR introduce and why?
Please check if the PR fulfills these requirements

[ ] Include reference to internal ticket and/or GitHub issue "Fixes #NNNN" (if applicable)
[ ] Relevant tests for the changes have been added
[ ] Relevant docs have been added / updated

Is there a corresponding sdk-server PR to review alongside this?


Video showing piglet in one window and remote piggui in another

Probably add to youtube channel and link to it, but without putting more animations into the README.

Did this one for CLI options
https://youtu.be/zcEa_Oke014

And now this one with the Connect dialog
https://youtu.be/aToJ1aT7NeM


Predicting probabilities

On line 56 in sklearn_api.py, you have the following
return model.predict_proba(scoring_inputs)
but you may want:
return model.predict_proba(scoring_inputs)[:,1]
to predict probabilities for the evaluation function.

No, I think it's correct as it is, though it might be a bit confusing. Taking a look here (https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html), the difference between predict and predict_proba is that predict produces a list [0, 1, 2, 0, 2, 1, ...], whereas predict_proba provides more information, e.g. [ [0.9, 0.1, 0.0], [0.4, 0.5, 0.1], [0.2, 0.2, 0.6], [1.0, 0.0, 0.0], [0.1, 0.3, 0.6], [0.1, 0.6, 0.3], ...]. The difference is that when we are using a probabilistic model, we want the evaluation function to have access to all that information, rather than just the probability of the first class, as that would return. Especially if we have a 3-class problem, then we need the full information, rather than just the one column.
If you take a look at the metrics which I provide, you'll notice that I handle both possibilities here in this function https://github.com/gelijergensen/PermutationImportance/blob/40737540bba9fe284466fb3e652a4f21dd42e1d5/PermutationImportance/metrics.py#L64.

The reason I raise the issue is that for evaluating the AUC (using sklearn.metrics.roc_auc_score), an error was raised since the predictions need to be a 1-d vector ( e.g., just the probability of the positive class).

I see. And you're wanting to use it with a model which has a predict_proba method or just a predict method? In the later case, you can just use the model the other way (i.e. the "deterministic" way), because it'll call predict under the hood and then pass that 1-d vector along to the AUC scoring function. That's why having called it "deterministic" vs. "probabilistic" was probably a bit of a misnomer on my part. The model itself can produce 2 class probabilistic outputs and it'll technically be a "deterministic" model as far as the wrapper methods here are concerned.
If your model is using a predict_proba method, then we'll need to make a little wrapper around sklearn.metrics.roc_auc_score which grabs only the column that you care about

Sounds good. The primary issue I was encountering was that predictions from the predict method produce an erroneously low AUC as compared to the predictions from the predict_proba[:,1] method.

Oh, hmm... that is weird. In any case, you could try using this wrapper function around the sklearn.metrics.roc_auc_score:
def grab_single_class_probabilities(f):
    def wrapped_function(truths, predictions):
        return f(truths[:,1], predictions[:,1])
    return wrapped_function

And then you can simply write grab_single_class_probabilities(roc_auc_score) instead of roc_auc_score or something. It's maybe not the cleanest (and you may not need to modify the truths as well as the predictions in the internal call), but I think it should work and would allow you to see if the AUC is still oddly low


Add auto_generated metadata

Related to #27509
Add the auto_generated: true metadata to the generated files for the API specs, so the Edit this page link is not visible (when featue is implemented).
Also add some comment in the source of the file to indicate the file is auto-generated.

@feloy ,
Here is an example page that uses the modified template,
https://kubernetes.io/docs/reference/config-api/apiserver-audit.v1/

/lgtm

/approve


Add option to specify dataset query tokenizer to fix broken highlighting

Related: https://github.com/twitter/typeahead.js/issues/821
Highlighting doesn't work correctly because typeahead doesn't know how query is tokenized. This adds a dataset-specific option that mirrors the Bloodhound queryTokenizer option to split the input query before turning them to regex patterns. Fixes the "John Smith Boston" problem in issue 821.

 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.


Nested comprehensions, bug or a feature?

I'm having problem with nested array comprehensions.
In python: [ [i,j] for i in range(3) for j in range(3) ]
gives you a 2D array:
[ [0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2] ]
When I try the same in coffescript : ( [i,j] for i in [0..2] for j in [0..2] )
I end up with a 3D  array:
[ [ [ 0, 0 ], [ 1, 0 ], [ 2, 0 ] ],
[ [ 0, 1 ], [ 1, 1 ], [ 2, 1 ] ],
[ [ 0, 2 ], [ 1, 2 ], [ 2, 2 ] ] ]
When I increase the nest depth, python keeps giving flattened results whereas CS increases the array dimensions.
So is this a bug or a feature?

My preference, inspired from Scala, would be to keep the current behavior when using multiple for, each for behaving like a map:
s1 = [1, 2]; s2 = [3, 4]
r = (i for i in s for s in [s1, s2])
# r contains [[1, 2], [3, 4]]

This is similar to what happens in Scala when using multiple for:
val s1 = List(1, 2); val s2 = List(3, 4)
val r = for (s <- Seq(s1, s2)) yield for (i <- s) yield i
# r contains List(List(1, 2), List(3, 4))

Now however in Scala, you get a flatMap when using just one for:
val r = for (s <- List(s1, s2); i <- s) yield i
# r contains List(1, 2, 3, 4)

By analogy, I'd like to get a flatMap in CoffeeScript when using one for, with a syntax TBD, for instance:
r = (i for s in [s1, s2], i in s)
# r would contain [1, 2, 3, 4]

Hi, beginner here.  The wikipedia for list comprehensions implies the goal of comprehensions is to mimic set-builder notation.  As a mathematician I can say what I'd expect using set-builder notation:
a+b for a in A for b in B := {a+b : a in A, b in B} = [a1, a2, b1, b2]
[a+b for a in A] for b in B := {{a+b: a in A}: b in B} = [[a1, b1], [a2,b2]]

I'm not sure if this is possible to implement with a parser, but this makes intuitive sense to me.

FWIW, I find CoffeeScript's list comprehensions basically unusable for multiple loops, but I'm biased by my Python experience.  It's not a huge issue for me, since the workaround is obvious (just use the imperative style when you have multiple loops).
It's going to be a gotcha for newbies coming from Python.  If nothing else, I think the documentation should clearly call out the nested behavior.

Here's an interesting litmus test for list comprehensions:
http://rosettacode.org/wiki/List_comprehensions
I tried it in CS, and I basically gave up.
Here's the Python solution (not mine, but Rosetta is GFDL, see their license):
[(x,y,z) for x in xrange(1,n+1) for y in xrange(x,n+1) for z in xrange(y,n+1) if x**2 + y**2 == z**2]

See also [https://github.com/jashkenas/coffee-script/issues/2030](issue 2030).

I hope that the docs eventually call out that CS differs from Python in two important ways.  First, there's flattening.  Second, there's the order in which loops are nested.  Python documents its strategy in the PEP: "The form [... for x... for y...] nests, with the last index varying fastest, just like nested for loops." (http://www.python.org/dev/peps/pep-0202/)
CS arranges the loops in the opposite direction, with the first index varying fastest, the opposite of how nested for loops work:
(x for x in a for y in b)

var x, y, _i, _j, _len, _len2;

for (_i = 0, _len = b.length; _i < _len; _i++) {
  y = b[_i];
  for (_j = 0, _len2 = a.length; _j < _len2; _j++) {
    x = a[_j];
    x;
  }
}

@showell: I agree, that would be a good way to document our comprehensions. Unlike python,

CS does not automatically flatten a nested comprehension (map instead of concatMap)
The index of the comprehension nested deepest varies fastest

That seems like a concise way to describe both the nested comprehension semantics and the way it differs from Python.

@michaelficarra I think those two lines would go a long way to avoiding confusion.  Does it make sense to open a new issue that specifically addresses documenting the feature as currently implemented?

It would make even more sense to just open a pull request (mentioning and summarising this issue for those that weren't paying attention to our discussion) where we can talk about changes if what was submitted is insufficient/erroneous.

Calling it comprehension was a mistake. Just saying "our loop returns an array of each result" or something
would've been much less confusing.

See issue 2039.  @michaelficarra @satyr I am holding off on a pull request, because I think the main problem here is agreeing on some terminology.  Once the terminology gets nailed down, I think the doc patches will be pretty trivial (and very helpful).

I really like this idea:
[x, y] for x in [1..3], y in [7..9] when x + y != 10
producing
[[1, 7], [1, 8], [2, 7], [2, 9], [3, 8], [3, 9]]
This way it would not break or change any current code - you could still use multiple fors and get the current result. Eg you could do
[x, y, z] for x in [1..3], y in [7..9] when x + y != 10 for z in ['a', 'b', 'c']
if you wanted to.
This way we could have the current list producing fors, and also real list comprehensions that act like people expect.
I tried taking a stab at getting something like this working, but when I got to the compileNode method of For in nodes.coffee, I got in over my head.

Closing this in the interest of cleaning up old issues. If someone would like to implement a new comprehension feature that uses a new syntax that isn’t a breaking change, please feel free to submit a PR.


use https protocol everywhere

Actually we could omit the protocol in every URLs in the file and add https:// to the template, all links will be in HTTPs by default


GameManager component wrapper

As outlined in #42 , there isn't a real pressing need to have the ResponseValidator, StateTransformer, or GameStateIterator broken out as separate components in the exports. As such there should be a 'GameManager' class that contains the logic to instantiate those components as well as use them in the common paths. As well, we can then add a 'test' (typescript type assertion) to check the types.

Current work of the 'common paths' functionality indicates that the class will need some sort of parameterization vis-a-vis the number of players and their handlers. Not sure what this would look like currently however.

The number of players would likely need to be included in the game-params class in such a way that we know it is a parameter across all game types. (Are there other parameters like this?)


Change random thirdparty module filtering

The current filter only chooses modules, which description's length is between 70 and 90. I assume it is to make sure they have a 3 line description on the page, so truncation doesnt cause a problem
I checked it, and currently only 131 entries satisfy this, out of 629 (20%).
As 12 modules are shown on the page on each load, the modules shown repeat quite often.
I tought it might be good to have all modules in the pool.
Of course with this there can be too long desctiptions, so i truncated them using -webkit-line-clamp. caniuse tells its well supported.
I tried Chrome, Firefox, Edge, IE. All work except IE of course (but the current page has problems too)
I understand this may be a design and UI decision, so feel free to close this PR.

@littletof I'm generally in favor, but adding these extra entries slows initial page load because they are all inlined into the static html file that gets generated by Next.js. Just the batch of extra modules in this PR add 29KB of extra data on first load. That is not great. Especially because more and more modules are added every day.
I think the easiest fix would be make a random selection of ~48 modules during static build, which can then further be selected from in the frontend. As the page gets deployed multiple times every day the random selection of 48 should change multiple times a day. That we can show more modules over the course of a day, while keeping page load times under control. What do you think?

@lucacasonato well, if it brings down performance, then the selected pool on each deploy, like you proposed, could work instead, while there are multiple deploys a day. The main point is to not restrict the referencing of modules to be based only on their descriptions length.
I will give it a go, but I'm not familiar with React, so feel free, to implement it in an other branch.

@lucacasonato it works now, after your review its done I think.

@lucacasonato thanks!
Using ellipses would feel a bit odd for me, from a UI/UX standpoint, but dont really have a better solution other then these two you mentioned.


overridable elevation

I have made the elevation overridable since elevation can be good and bad for different user interfaces. Thank you.

Thanks again @imshibl, I will make new release by this weekend!


[API Feature Request] More UI features

Describe the feature and the current behavior/state.
Would love to see more UI features like the "store" and "changelog" extensions.

Also for markdown in "Detail" can add HTML for more design flexibility. So that we can do something like a details page in the "store" extension.

Will this change the current api? How?
This will only add the features of the API.
Who will benefit with this feature?
Any extension that uses a lot of information.

I think it will be better if you write down a concrete list of improvements.
I also want to ask for more UI options, but I can't open a new issue because I don't know which ones this one covers

+1 for this one from me. The extension I'm working is for a task tracker and those app have lots and lots of information that would be better visually displayed with more ui components.
These options would be great to be implemented in list and detail ui components.
List:

Search Bar drop downs

List Items:

Color Badges
Layout Options (number of columns)
More accessorytitle items

Detail:

Layout options (number of columns and rows)
Pass html children to be rendered like markup (heading, images and paragraph elements)
Color badges
In-line Forms
links
Checklists
lists
Detail Section Dividers

+++ This is much needed. I have an extension in progress that needs a list view on the left and a form view on the right. There's also a nav pane which has a form on the left and a preview of the markdown content on the right.

More and more of these UI components are available. A few last ones are missing that we'll ship soon.

I'm looking forward to the UI features mentioned above.
By the way, how is the current development progress? Where can we see the schedule?

A lot of the changes have shipped. We don't have a schedule but it's best to check in our changelog and the community.

Thank you. I have seen it. Actually, I want to ask, can we know your next API feature development plan? For example, what UI API features will be opened in the next cycle?
This is important for us to write some extensions mainly to display UI-related, because the current UI API is relatively simple and lacks many features, and I think this is also what many developers are paying close attention to.

For example, github-repository-search , the first picture is displayed with the search interface embedded in the application, the second picture is the display when installing and debugging locally.
I want to know, when will this new layout and text color and background border API open?


Add table for blocks

Add an extra table for storing extra block metadata

gaslimit
timestamp
num txs
...?

This is done in a separate process


Bug of filter when operating with dremio

there is a bug when having a boolean filter be applied in Dremio dataset.
after you selected True or False in boolean filter, then click apply button, will throw exception.

A clear and concise description of what the bug is.
How to reproduce the bug

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected results
what you expected to happen.
Actual results
what actually happens.
Screenshots
If applicable, add screenshots to help explain your problem.
Environment
(please complete the following information):

browser type and version:
superset version: superset version
python version: python --version
node.js version: node -v
any feature flags active:

Checklist
Make sure to follow these steps before submitting your issue - thank you!

[x] I have checked the superset logs for python stacktraces and included it here as text if there are any.
[x] I have reproduced the issue with at least the latest released version of superset.
[x] I have checked the issue tracker for the same issue and I haven't found one similar.

Additional context
Add any other context about the problem here.

Hello @niyouzhu which Superset version are you running?

Hello @niyouzhu which Superset version are you running?

@geido
dremio : 20.1.0
superset : 1.3.2

Hello @niyouzhu which Superset version are you running?

@geido the root cause should be the syntax IN(0) cannot run on dremio, the correct syntax is IN('0') or IN(true), just like this:
SELECT DATE_TRUNC('day', "CreationTime") AS __timestamp,
"AppUserId" AS "AppUserId",
"WxUserId" AS "WxUserId",
"UserName" AS "UserName",
"Surname" AS "Surname",
"Name" AS "Name",
"IsExternal" AS "IsExternal",
"IsDeleted" AS "IsDeleted",
"PhoneNumber" AS "PhoneNumber",
"Email" AS "Email",
COUNT(*) AS "count"
FROM "SSO"."Prod"."UsersWithWx"
WHERE "IsDeleted" I_N (false)_
GROUP BY "AppUserId",
"WxUserId",
"UserName",
"Surname",
"Name",
"IsExternal",
"IsDeleted",
"PhoneNumber",
"Email",
DATE_TRUNC('day', "CreationTime")
LIMIT 10000;

@zhaoyongjie wdyt?

@geido @niyouzhu refer from Dremio Document: https://docs.dremio.com/software/sql-reference/sql-functions/functions/istrue/?parent=boolean
There is a workaround for this case.

create a derived column. the new derived column type is an integer.

CASE
  when ISTRUE(IsDeleted) then 1
  else 0
END

create a select in FilterBox use the derived column instead of original column.

I'm going to close this thread since

a workaround was provided on the thread (which I assume worked?)
the issue has gone cold for upward of a year, and
we no longer support Superset 1.3.x

If anyone is still encountering this issue in 2.0.x and/or the workaround isn't working, we can most certainly re-open this issue. Thanks!


Make the "Complex" Shape

Make it possible to have the complex shape

In an attempt to set a cut-rectangle shape to the node, I ended up making all the nodes similar to Pathway Mapper, i.e. All non-parent nodes are also set to shapes as in Pathway Mapper, find below the screenshot depicting the same, Please suggest your views on it.

Find below the pathway Mapper diagram of the same pathway.


Site rate models for meanings rates

https://academic.oup.com/mbe/article/21/6/1095/1050747
Very desired implementation of the site rates model which overcomes the gamma site rates currently implemented.

Would that be something for pylobayes? BTW, have you seen pyloparsimony? I think  this is a good example for how to make basic implementations for pylogeny packages, adn we use the pylogeny/pylogeny package to unite them all.


Deployment via gh-pages

We need to have a deployment for the website. The CNAME has been added already. The A records at cloudflare are pointing at github. We have to do the following:

Add gh-pages to this project
On npm run build: gatsby build should run and deploy to the gh-pages branch.

I don't have access to repository settings!

@mkam039: done and will give you access.


Create a combined register & submit convenience function in TestRustWorker

Might be nice to create a combined register & submit convenience function for all these.
Originally posted by @Sushisource in https://github.com/temporalio/sdk-core/pull/163#r685379701

Closing this b/c old. There's a lot of stuff that could be done to sort of generally clean up internal testing as there are a bunch of different methodologies, but at the same time it's not bad at all and thus a questionable ROI to go make as clean as possible.


Autogen Azure.ResourceManager

Major differences with previous version:
ManagementGroup:

Added GetAvailableLocations methods

ManagementGroupsRestOperations:

CreateOrUpdate returns Response now instead of ResponseWithHeaders.
CreateOrUpdateAsync returns Task now instead of Task<ResponseWithHeaders>.
Delete returns Response now instead of ResponseWithHeaders.
DeleteAsync returns Task now instead of Task<ResponseWithHeaders>.

GenericResource:

apiVersion becomes an input parameter, used custom code for almost every method to remove it and align with previous code. Considering we're making changes to how we get ApiVersion.
I will try to input the changes in generator after GA and remove as much custom code as possible.

GenericResourceCollection:

apiVersion becomes an input parameter, used custom code for almost every method to remove it and align with previous code.
Previously parent is subscription and has a GetByResourceGroup method which is not right. Now parent is Tenant(the methods are all ById methods, like ResourceLink), no GetAll method, GetGenericResources methods moved to subscription and resourceGroup.

GenericResourceData:

A new property extendedLocation is added.
It now inherits from TrackedResourceExtended which also has extendedLocation and inherits from TrackedResource. It's likely that the TrackedResource in common type will eventually add extendedLocation and the two becomes the same.

PredefinedTag:

It is now non-resource as the reosurce schema does not have name and type, it doesn't have an get operation either.

Tenant:

GetTenantProvider returns ProviderInfo previously which has less properties than ProviderData, now returns ProviderData, which aligns with swagger.

ResourceLinkCollection:

body parameter is unflattened in CreateOrUpdate.

All SDK Contribution checklist:
This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] Please open PR in Draft mode if it is:

Work in progress or not intended to be merged.
Encountering multiple pipeline failures and working on fixes.

[ ] If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
[ ] I have read the contribution guidelines.
[ ] The pull request does not introduce breaking changes.

General Guidelines and Best Practices

[ ] Title of the pull request is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

SDK Generation Guidelines

[ ] The generate.cmd file for the SDK has been updated with the version of AutoRest, as well as the commitid of your swagger spec or link to the swagger spec, used to generate the code. (Track 2 only)
[ ] The *.csproj and AssemblyInfo.cs files have been updated with the new version of the SDK. Please double check nuget.org current release version.

Additional management plane SDK specific contribution checklist:
Note: Only applies to Microsoft.Azure.Management.[RP] or Azure.ResourceManager.[RP]

[ ] Include updated management metadata.
[ ] Update AzureRP.props to add/remove version info to maintain up to date API versions.

Management plane SDK Troubleshooting

If this is very first SDK for a services and you are adding new service folders directly under /SDK, please add new service label and/or contact assigned reviewer.

If the check fails at the Verify Code Generation step, please ensure:

Do not modify any code in generated folders.
Do not selectively include/remove generated files in the PR.
Do use generate.ps1/cmd to generate this PR instead of calling autorest directly.
Please pay attention to the @microsoft.csharp version output after running generate.ps1. If it is lower than current released version (2.3.82), please run it again as it should pull down the latest version.

Note: We have recently updated the PSH module called by generate.ps1 to emit additional data. This would help reduce/eliminate the Code Verification check error. Please run following command:
  `dotnet msbuild eng/mgmt.proj /t:Util /p:UtilityName=InstallPsModules`

Old outstanding PR cleanup
Please note:
If PRs (including draft) has been out for more than 60 days and there are no responses from our query or followups, they will be closed to maintain a concise list for our reviewers.

@m-nash there's one resource left in Resources/PseudoGenerated folder, which is RestApiCollection. It looks like customized code and I cannot find the original request path. Shall we move it to Custom folder?

The changes are merged in #26419


C_CPP : Two Pointers Technique (Documentation) #910

Description 📜
Fixes #910

Type of change 📝

[x] Documentation (Content Creation in the form of codes or tutorials)

Domain of Contribution 📊

[x] C/CPP

Checklist ✅

[x] I follow Contributing Guidelines & Code of conduct of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I'm GWOC'21 contributor

/assign

Would have merged but you're a mentor now :octocat:
Suffering from Success


Docker containered wkhtmltopdf

Hi, just tried to change binary to a custom alias which I bound on my linux machine, but get blank pdf files. When I do this with existing binary its works fine.
alias wkhtmltopdfdocker='docker run -it wkhtmltopdf'
running then "wkhtmltopdfdocker" in terminal print out the helpinfo. With stdout I can generate then pdf files, in example:
wkhtmltopdfdocker -q https://www.google.de - | cat > test.pdf
I think the way your php wrapper is using wkhtmltopdf is not working with docker containers, any hint for a workarround?

Are you sure that your alias is available from PHP?  Try system('wkhtmltopdfdocker') (without our library) and see if this produces any output.

You're absolutly right, that issue is related to my environment thanks ;)


Does  subdomain with eloqua cloud could takeover?

Does  subdomain with eloqua cloud could takeover?And how to use azure cloud to takeover sudomains?

Hi @whiteHat001,
What have you tried? It's difficult to give you good advise if you haven't exposed your thought process and what you've tried already.
There's a number of write-ups on Azure takeovers you can refer to, and I'll add it to this page soon. I'd also recommend trying to do an eloqua takeover yourself - that's normally the first step to learning how to do these and identifying if the're vulnerable or not.


Update bitflags to same version

Currently we have bitflags = "0.4" in syses and bitflags = "0.5" in non syses.
May be in same time we need update it to last version (currently "0.7.0")

Upgrading to bitflags = "0.7" need change generator to generate "pub flags ..."
Changing to bitflags = "0.5" seems impossible due strange error (as use libc::c_uint; present)
error[E0412]: type name `c_uint` is undefined or not in scope
    --> lib.rs:1578:31
     |
1578 |     pub flags GTraverseFlags: c_uint {
     |                               ^^^^^^ undefined or not in scope
     |
     = help: you can import several candidates into scope (`use ...;`):
     = help:   `libc::c_uint`
     = help:   `std::os::raw::c_uint`

Currently v0.7 and v0.6 won't work too.

Now we are using v1.0, and sys crates don't depend on bitflags since https://github.com/gtk-rs/gir/pull/577.


[Django] Using null=True raises error

If null=True is passed to a VectorField in Django, the field will be created successfully but both reads and writes to the field will fail.
pgvector/django/__init__.py", line 47, in validate
    super().validate(value.tolist(), model_instance)
    ^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'tolist'

Will look into writing a PR if I have time.

Thanks @keithhackbarth, should be fixed in the commit above.

Amazing!!! Thank you @ankane. Super impressed 🤩


Jshell samples

Maven based sample projects for JShell
@neomatrix369 Since one sample has a web client all the JS stuff is needed ;)

@hendrikebbers Sorry for not looking at this earlier, I trust its good material from the demo you gave last weekend. If there is anything hopefully  users of the exercise will help us iron out the exercise(s) and sample(s). Thanks plenty Hendrik.

@hendrikebbers do you mind adding some references to each of these samples via the main README.md please?

@hendrikebbers I'll add the notes to the README, thanks again for your contribution


How to set doxdocgen.generic.authorEmail to "git config --get user.email"

Basically title. We use one common checked in vscode settings file.
I found ${env:} but this is not an environment variable.
I also found ${command:} but I have no idea what to write as commandId.
Any idea if this is possible at all?

It seems ${command:} will never work within settings :( Then I assume it has to be an option within doxdocgen.
Feature request:

option to substitute {author} with git config --get user.name
option to substitute {email} with git config --get user.email

Should in theory be possible with child_process.
Would have to be implemented carefully though because this may lead to long running operations (e.g. git for windows is often quite slow) which in turn would lead to empty messages or bad response times of the add-on.


htlwienwest-da:0.1.1

I am submitting

[ ] a new package
[x] an update for a package

This release fixes spacing issues when using Typst 0.12.

I want this to be merged

Thank you :)


Refactor exception handling in database/DB

You need to alter the appropriate unit tests as well ... they are now failing with your changes.


Ignore inlay hints for parameters starting with __

There should be a setting to ignore inlay hints for parameters starting with __ such as __obj  in len(obj) function.

Am I correct in understanding that in the following code, when calling foo you wouldn't want to see the __x/ inlay hint for the argument?

If so, this is already possible. You can set python.analysis.inlayHints.callArgumentNames to partial instead of all.

thanks, it resolved my issue.


Improve compatibility with Tailwind

Is your feature request related to a problem? Please describe.
Tailwind becomes more and more popular and it does not rely on predefined classes which is used in every and each table. With Liveview we start encapsulating styled components. In my specific case, when I am using Flop.Phoenix.pagination I have two issues:

I can't adjust the css class when it's the current page (fixed tois-current
I can't change the order of previous_link, page_links and next_link. For instance I'd like to have the previous_link before the page_links and the next_link at the end.

Describe the solution you'd like
The first issue could be fixed with a further customization option. The second issue by allowing to override the content of the pagination function.
Describe alternatives you've considered
For the moment I am basically overriding the Flop.Phoenix.Pagination module which isn't nice.

Thanks for your feature request. I added the option current_link_attrs in #27. This option is not merged into pagination_link_attrs, which means you'll need to duplicate any shared classes. For the default classes, this would mean:
[
  pagination_link_attrs: [class: "pagination-link"],
  current_link_attrs: [class: "pagination_link is_current"]
]

The pagination_link_aria_label option is applied to both non-current and current links.
As for 2, I'm using flex box with the order property to bring the elements into the order I need.
In CSS with the default classes:
.pagination {
  display: flex;

  .pagination-list {
    order: 2;
  }

  .pagination-previous {
    order: 1;
  }

  .pagination-next {
    order: 3;
  }
}

Or with Tailwind classes:
opts = [
  wrapper_attrs: [class: "flex"],
  pagination_list_attrs: [class: "order-2"],
  previous_link_attrs: [class: "order-1"],
  next_link_attrs: [class: "order-3"]
]

Would this solution work for you?

Whoa, that was fast @woylie! And indeed your proposed solution works for me, thanks a lot! Also for this nice library which will be a shining star soon. There are some pagination libraries but I feel you really built a great package together with filtering and sorting. And it allows enough customization. Thank you!


Travis - Specify Node Version

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

Merging [#93][cc-pull] into [master][cc-base-branch] will not change coverage

@@             master        #93   diff @@
==========================================
  Files             5          5
  Lines           106        106
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits            102        102
  Misses            4          4
  Partials          0          0

Powered by Codecov. Last updated by [b529776...9677d9c][cc-compare]
[cc-base-branch]: https://codecov.io/gh/ekonstantinidis/django-rest-framework-docs/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/ekonstantinidis/django-rest-framework-docs/compare/b52977666ee41cb560652f1bdfe730ad99f87ae5...9677d9cf54c829152d1ba4d8ad204fce30a68226
[cc-pull]: https://codecov.io/gh/ekonstantinidis/django-rest-framework-docs/pull/93?src=pr


✨(elasticsearch) add support for secure mode

Purpose
We need to create users and give them roles on indexes in Kibana.
Proposal

[x] implement elasticsearch secure mode
[x] configure kibana to use the secure mode
[x] automate admin user creation
[x] write basic documentation to activate the secure mode

@lunika I've addressed all you comments. Can you give this PR a (final?) review?

@lunika & @madmatah I've addressed all your comments. Feel free to validate this amazing PR :trollface: :pray:


updated image needed

I don't have rights to upload a new file (the updated error image)
More details here: https://github.com/MicrosoftDocs/windows-itpro-docs/issues/2489

@VLG17 Please embed the image in Markdown image as if it had been uploaded to proceed with the review. Thanks.

mbed the image in the Markdown source as if it had been uploaded to proceed with the review. Thanks.

@e0i I don't quite get what you want me to do. This is my first time working on such an issue. Could you please give me more details about how i should proceed?

The image has been uploaded to https://filestore.community.support.microsoft.com/api/images/6f409915-a504-44e2-b983-1b587c22d409?upload=true , so it should be accepted as property of Microsoft (I am not a lawyer, so I don't know the exact legal details). The latest commit 2 years ago (https://github.com/MicrosoftDocs/windows-itpro-docs/commit/897162ef2bc5cd0b6e0ef029861a93a63a7ce7e5) involving the file in question was performed by @Justinha , making it reasonable that he should know something useful related to this.