Updated core

Updated Core: Design and Concepts
Status

[X] fixes #1
[X] fixes #48
[x] normalize series when multiple resolutions are returned
[x] bring back ES support

Internal Architecture
Cyanite's internal architecture is that of the typical
stream processing project, it connect inputs to outputs
while doing normalization and mangling.
The internal architecture can be represented with this
simple diagram:

As is described on the diagram the workflow is:

Each input produces new normalized payloads (metrics),
and enqueues them.
The engine core pops items off the queue and processes them
When applicable items are handed off to a store and index.
components respectively responsible for persisting time-series
and indexing metric names.
An API component which is able to interact with the engine
and other components to query and present data.

Input Components
Input components are arbitrary means of inputting metrics.
Out of the box there are three available types of input
components:

carbon: a TCP listener for the text protocol known as Carbon,
which is part of the Graphite tool-suite.
pickle: a pickle serialized version of the above protocol, as
produced by the other daemons in the Graphite tool-suite.
fake: a fake input which produces a new value every 500
milisecond for test purposes.

Input components are responsible for producing metrics in a normalized
way:
  {
    "path":   "web01.cpu",
    "metric": 40.0,
    "time":<PHONE_NUMBER>
  }

Once a metric has been normalized, it is handed over to the engine
component through its accept! function:
    (accept! engine {:path "web01.cpu" :metric 40.0 :time<PHONE_NUMBER>})

Engine Component
The engine component is responsible for popping metrics off of its
input queue, aggregating data over a time-window and producing write
operations on the index and store components when necessary.
To do this it holds on available points for a while and flushing them
out when necessary.

The fact that Cyanite holds on to metrics in memory makes it a
stateful server. As such if you wish to use Cyanite in a redundant
fashion, you will need to account for it.

Aggregation Mechanism
The aggregation mechanism for metrics relies on a fast in-memory
hash-table. Each metric is kept on a bucket corresponding to the
metric path and its resolution. When a time-window has passed for a metric
sums, means, minimas and maximas are computed and emitted as a /snapshot/.
Cyanite supports several resolutions based on a first-match set of rules
as provided in the configuration file. Rules are a list of patterns
to match a metric name on corresponding to a list of resolutions
(in the form <precision>:<period>).
Snapshots are then handed over to the store and index components.
The process can be represented visually like this:

Cyanite accounts for drift by comparing its wall clock to the values provided in metrics.
Once a resolution's time-slot passes over including when accounting for drift, values are
flushed and a snapshot is created. This means that out-of-order values may be supplied but
not once a time-slot has already been flushed.

Store component
The store component is called for each snapshot created by the engine component.
The only working component stores data to Apache Cassandra
Storage Schema
The following schema is used to store data::
CREATE KEYSPACE metric
       WITH replication = {'class': 'SimpleStrategy',
                           'replication_factor': '1'}
       AND durable_writes = true;

USE metric;

CREATE TYPE metric_point (
  max double,
  mean double,
  min double,
  sum double
);

CREATE TYPE metric_id (
  path text,
  resolution text
);

CREATE TABLE metric.metric (
  id frozen<metric_id>,
  time bigint,
  point frozen<metric_point>,
  PRIMARY KEY (id, time)
) WITH COMPACT STORAGE
  AND CLUSTERING ORDER BY (time ASC)
  AND compaction = {'min_threshold': '4',
                   'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy',
                   'max_threshold': '32'}
  AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}
  AND dclocal_read_repair_chance = 0.1
  AND default_time_to_live = 0
  AND gc_grace_seconds = 864000
  AND max_index_interval = 2048
  AND memtable_flush_period_in_ms = 0
  AND min_index_interval = 128
  AND read_repair_chance = 0.0
  AND speculative_retry = '99.0PERCENTILE';

This schema leverages Cassandra's Compact Storage option to ensure a minimal overhead.
Please be sure to choose the optimal compaction strategy for your use case. If available
the DateTieredCompactionStrategy is likely your best bet.
Index Component
The index component is responsible for building an index of path names and providing
a way of querying them back. There are two implementations of this component available:

memory stores an in-memory inverted index.
elasticsearch stores path-names in elasticsearch.

The memory index is a poor choice for redundant setups since it will only know of
metrics passing through it. Additionally, it is only valid to use it when metric name
cardinality is limited and metrics are recurrent since it will lose all its index upon
restarts.

API Component
The API component is responsible for exposing an HTTP service to service queries.
The API component exposes the following HTTP routes:

/ping: report online status
/metrics: query metrics.  Takes from, to (optional), and any number of  path arguments.
/paths: query paths.  Takes a query argument.

Any other request will yield a 404 response.

@pyr i'm interested in trying cyanite with pickle receive support. is the the PR to try for that? (i'll can try to resolve the merge issues, i'll report back with any issues i encounter)

Hi, Indeed that's where the work on pickle is going on.
I intend to get back to it in May, sorry about the delay.

To anyone following along, we're now back in a working state for metrics which will be compatible with previous cyanite installations. Please pay attention to the updated schema. There are no migration tools yet, these will be provided separately.

looks super nice!

@pyr Looks good, especially after watching 9 Cassandra nodes undergo a 1TB compaction simultaneously and hoping the cluster didn't fall over before it completed!

Any chance this will eventually add more inputs?
A few I can think of that might be nice:

Kafka
protobuf / captain proto

@SEJeff I intend to add more inputs indeed. Protobuf will most likely make it in the core in the form of a riemann input. As far as kafka is concerned, I intend to provide it as a plugin which will be able to:

process metrics as emitted by collectd, syslog-ng and other common emitters of kafka metrics
ship-off metrics to kafka (for name indexing purposes for instance)

I also intend to promote kafka as the recommended option when scaling cyanite installations.

Going to check this out tonight, when do you think migration scripts will
be available to go from the old schema to the new?
On Jul 23, 2015 3:40 PM, "Pierre-Yves Ritschard"<EMAIL_ADDRESS>wrote:

@SEJeff https://github.com/SEJeff I intend to add more inputs indeed.
Protobuf will most likely make it in the core in the form of a riemann
input. As far as kafka is concerned, I intend to provide it as a plugin
which will be able to:

process metrics as emitted by collectd, syslog-ng and other common
emitters of kafka metrics
ship-off metrics to kafka (for name indexing purposes for instance)

I also intend to promote kafka as the recommended option when scaling
cyanite installations.
—
Reply to this email directly or view it on GitHub
https://github.com/pyr/cyanite/pull/80#issuecomment-124220419.

@chjohnst Hi! I intend to provide two ways to migrate:

A compatibility mode with the old schema
A migration tool from the old to the new schema

Fantastic might be worth discussing the implementation of that setup.
On Jul 23, 2015 5:52 PM, "Pierre-Yves Ritschard"<EMAIL_ADDRESS>wrote:

@chjohnst https://github.com/chjohnst Hi! I intend to provide two ways
to migrate:

A compatibility mode with the old schema
A migration tool from the old to the new schema

—
Reply to this email directly or view it on GitHub
https://github.com/pyr/cyanite/pull/80#issuecomment-124249164.

I've brought back ES indexing support here as well. Here is how this will play out:

Documents will be indexed by the Murmur3 hash of a path to avoid reindexing
Documents will contain a length and path field
Documents are inserted with a TTL corresponding to their resolution
path will be stored, length will not. Neither will be analyzed
Leave queries will enforce length to be the number of segments
All queries will perform an additional wildcard match on the given path query

At startup, a query will be performed on the appropriate type to tentatively insert a valid ES mapping for the type.
ElasticSearch indexing will also greatly benefit from the snapshotting mechanism that this PR implements since a path will only be indexed once per resolution window.
There will be further improvements to make here:

Indexing should only happen once for a metric, not for each (metric,resolution) tuple as it is the case right now

Alright, flipping the switch. Next up:

doc polish
inline doc
a real test-suite

Once this is done, I'll go ahead and shoot a release. Don't hesitate to chip in here with any feedback you may have.

i could be wrong, but it looks like this new architecture pre-aggregates longer retention periods in-memory.  won't this cause problems for clustered environments where datapoints for the same long-retention bucket could go to different cyanite servers?

@tjamesturner yes, as mentioned in #106 and in the docs, you'll have to do client-side hashing


Add reading benchmarks

The surprising point is that the read benchmark outputs 2x faster numbers but I don't see a way around that.

Codecov Report

Merging #179 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #179   +/-   ##
=======================================
  Coverage   86.25%   86.25%
=======================================
  Files          64       64
  Lines        5186     5186
=======================================
  Hits         4473     4473
  Misses        628      628
  Partials       85       85

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 a929d4b...7ce45ea. Read the comment docs.


Dockerize Pet Rescue

Dockerizing the app to help lower the barrier to getting up and running for contributors. I opted to just use a dockerfile with docker-compose and rely on docker commands to get up and running - not using a devcontainer for now (I do not use VSCode).
With these changes so far, the app works as expected in Docker. However:

System tests are failing still. I added Chromium to the base image, but now getting a ferrum timeout error.
I was having asset delivery issues, so I run the command to precompile assets, though I know this can slow boot times down a bit
What would be ideal to include in a dockerignore file?

🔗 Issue

✍ Description

📷 Screenshots/Demos

Also, you really probably want to also have the docker container launch the javascript / assets process as well.  The line in the Procfile that looks like:  css: bin/rails dartsass:watch
basically, if you're running a full docker-compose container, you can fully avoid using the Procfile structure (foreman is quite a bit older than docker, and can be supplanted, it turns out)
That may also address what you were seeing and trying to address with the asset precompile, but there may be some port-mapping things to wrangle....

css: bin/rails dartsass:watch

Ah right thank you for catching that. I have added a SASS container.

@cflipse So I think this is good to go for now until we need to consider configration for deployments, right? I added some instructions for setting up local dev environment to the readme.

@cflipse bump


No need for "typedef" for (declaration + assignment)

Please, tell me is it possible to get have this behavior or linter?
When typedef ("variable-declaration" or "member-valiable-declaration") options specified we have
warnings for both cases.
//1)
var myNumber;
myNumber = 2;
//2)
var myNumber = 2;

but we wanna warning only for first case,  because in the second scenario compiler knew the type from assignment.
Also this is applied to class variables.
class MyClass {
    public mySomething = 2;
}

Basically, the pattern is.
If assignment here, and assignment != null;
So, is there any solution or maybe I miss something?
Thank you.

In general, given the spirit of how you're using the typedef rule, it sounds like the --noImplicitAny compiler option should suffice...
The typedef rule doesn't do any inference right now, but I'll leave this issue open for discussion if there is sufficient need for some different behavior.

Thank you, @adidahiya. --noImplicitAny actually the thing we wanny use. But we have a big codebase so not all of those code could be build with flag for now. We have tslint check-in policy in our VCS so newer changes to files validated (so old ones not checked if you don't change them). That's the reason for this issue.

+1 the type is inferred by the assignment. The TSC and VS Code intellisense is smart enough to know the type from the assignment type.

@robertbaker is your use case the same as above? I want to avoid duplicating functionality of the compiler. Does --noImplicitAny not satisfy your use case?

That option would work, I don't have it on because didn't want to fix the errors yet.

☠ TSLint's time has come! ☠
TSLint is no longer accepting most feature requests per #4534. See typescript-eslint.io for the new, shiny way to lint your TypeScript code with ESLint. ✨
It was a pleasure open sourcing with you all!

🤖 Beep boop! 👉  TSLint is deprecated 👈 (#4534)  and you should switch to typescript-eslint! 🤖
🔒 This issue is being locked to prevent further unnecessary discussions. Thank you! 👋


Python: ObjectAPI to ValueAPI: Handles

This PR is part of the Exceptions modernization effort.

There's gonna be a bunch of conflicts from https://github.com/Semmle/ql/pull/2978 for this, so I'd suggest we wait until that one goes through then I can deal with them cleanly hopefully.


Grid add records trouble

I'm submitting a ...
[ ] feature request

A w2ui grid is a great tool. Used in many projects.
In the new project, all exchange on websockets.
How do I send requests to my function, which will give answers.
I receive request variables normally
onRequest: function (event) {
    data = event.postData;
    event.preventDefault();
}

How do I send them to the table?
grid.add([
    {recid: 1, fname: 'John', lname: 'doe', email<EMAIL_ADDRESS>sdate: '1/3/2012'},
    {recid: 2, fname: 'Stuart', lname: 'Motzart', email<EMAIL_ADDRESS>sdate: '2/4/2012'}
])

doesn’t work correctly, an empty line is inserted

http://jsfiddle.net/z4nr9ke7/1/

Have your tried adding them one at a time?  The grid.remove only works one
at time, it fails when I call it with more than one.
On Mon, Mar 9, 2020 at 2:28 PM Alexander<EMAIL_ADDRESS>wrote:

I'm submitting a ...
[ ] feature request

A w2ui grid is a great tool. Used in many projects.
In the new project, all exchange on websockets.
How do I send requests to my function, which will give answers.
I receive request variables normally
onRequest: function (event) {
data = event.postData;

event.preventDefault();

}
How do I send them to the table?
grid.add([
{recid: 1, fname: 'John', lname: 'doe', email<EMAIL_ADDRESS>sdate: '1/3/2012'},

{recid: 2, fname: 'Stuart', lname: 'Motzart', email<EMAIL_ADDRESS>sdate: '2/4/2012'}

])
doesn’t work correctly, an empty line is inserted
[image: pic]
https://camo.githubusercontent.com/70bf97fcc4aa257307d58cd6febd24fe13a90233/68747470733a2f2f693131312e666173747069632e72752f6269672f323032302f303330392f32352f36393162653237383536393336336632356139333930653637353830626432352e706e67
http://jsfiddle.net/z4nr9ke7/1/
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/vitmalina/w2ui/issues/1886?email_source=notifications&email_token=ADC6YNJHDFUZWSFIXRR5VETRGVGOFA5CNFSM4LEQ2S7KYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4ITWFZMA,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADC6YNPQHOKHMWAWONZNVHTRGVGOFANCNFSM4LEQ2S7A
.

is grid.url defined? If your loading data manual, it should not be set. If it is set, it might trigger infinite scroll, and hence the issue. Seeing onReuqeust in your come, makes me thing, it is defined. Use grid.load() to load data one time or just do not set grid.url at all.

What events of the w2ui.grid call the load() method?

@atitoff In the original issue, you need to add grid.total = 2 after you add records. Then all will be good. Total is used for lazy loading, therefore it needed. I have checked, current version does not have this problem. In the example you use 1.4, which will work with the fix I mentioned.
@mdavis1960 as for you can do .remove(recid1, recid2, recid3)

@atitoff for your web socket idea, you can use something like this
$(function () {
    $('#grid').w2grid({
        name: 'grid',
        header: 'List of Names1',
        url: 'http://w2ui.com/web/pages/demo/infinite/index.php',
        recid: 'userid',

        onRequest(event) {
            getRecords(event.url, event.postData)
            event.preventDefault()
        },
        columns: [
            { field: 'userid', text: 'ID', size: '80px', sortable: true, searchable: 'int', hidden: true },
            { field: 'fname', text: 'hex', size: '180px', sortable: true, resizable: true, editable: { type: 'hex' } },
            { field: 'lname', text: 'color', size: '180px', sortable: true, resizable: true, editable: { type: 'color' } },
            { field: 'email', text: 'date', size: '100%', sortable: true, resizable: true, editable: { type: 'text' } }
        ]
    });

    function getRecords(url, post) {
        $.ajax({
            url,
            method: 'GET',
            data: { request: JSON.stringify(post) }
        })
        .done((data) => {
            var grid = w2ui.grid
            grid.last.xhr_offset = post.offset
            if (grid.last.xhr_offset === 0) grid.records = []
            if (data.total > grid.records.length) {
                grid.last.xhr_hasMore = true
            } else {
                grid.last.xhr_hasMore = false
            }
            grid.last.pull_more    = false;
            grid.last.pull_refresh = true;
            grid.total = data.total
            grid.records = grid.records.concat(data.records)
            grid.refresh()
        })
    }
});


poise and chef-12.4.0

We've been hitting a new issue since upgrading from chef-12.2.1 to chef-12.4.0:
  Recipe Compile Error in /var/chef/cache/cookbooks/wrap_hadoop/recipes/rundeck.rb
  ================================================================================

  NoMethodError
  -------------
  No resource or method named `rundeck_node_source_file' for `Chef::Resource::RundeckProject "data"'

  Cookbook Trace:
  ---------------
    /var/chef/cache/cookbooks/wrap_hadoop/recipes/rundeck.rb:39:in `block in from_file'
    /var/chef/cache/cookbooks/wrap_hadoop/recipes/rundeck.rb:37:in `from_file'

  Relevant File Content:
  ----------------------
  /var/chef/cache/cookbooks/wrap_hadoop/recipes/rundeck.rb:

   32:
   33:  rundeck_acl 'apiadmin' do
   34:    source 'rundeck/apitoken.aclpolicy.erb'
   35:  end
   36:
   37:  rundeck_project 'data' do
   38:
   39>>   rundeck_node_source_file "data-#{node[:datacenter]}" do
   40:        query "datacenter:#{node[:datacenter]} AND recipes:wrap_hadoop\\:\\:common"
   41:    end
   42:
   43:  end
   44:
   45:  cookbook_file "/etc/rundeck/tokens.properties" do
   46:    source "rundeck/tokens.properties"
   47:    mode 0644
   48:  end

though it's unclear to me if this is a problem with poise or the integration in https://github.com/balanced-cookbooks/rundeck/blob/master/libraries/rundeck_node_source.rb.
This is using the latest poise master.
Any suggestions would be appreciated!

12.4 changed how the DSL works and now in general resources and providers need to explicitly declare what DSL names they support. Adding provides(:rundeck_node_source_file) to the resource and provider classes should take care it.

Ahh, thank you. I'll take it up with the rundeck maintainer.

Given that that is also me, you don't have far to go ;-)


Non-ASCII Charactor

I'm current't using OSX and trying to install quamash using
pip install quamash

However I kept getting this
Collecting quamash
  Using cached Quamash-0.5.5.zip
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/xc/w91zg1p97dd4v2gzrlrp7t440000gn/T/pip-build-VDDZTx/quamash/setup.py", line 2, in <module>
        import quamash
      File "/private/var/folders/xc/w91zg1p97dd4v2gzrlrp7t440000gn/T/pip-build-VDDZTx/quamash/quamash/__init__.py", line 1
    SyntaxError: Non-ASCII character '\xc2' in file /private/var/folders/xc/w91zg1p97dd4v2gzrlrp7t440000gn/T/pip-build-VDDZTx/quamash/quamash/__init__.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

Only works on python 3.

see #49

pip3 install quamash do the work in macOS

try python3 --version  and python3 -m pip install quamash


[SVG output] mglyph alt creates (invalid) alt and title attributes

https://github.com/mathjax/MathJax/blob/419b0a6eee7eefc0f85e47f7d4f8227ec28b8e57/unpacked/jax/output/SVG/autoload/mglyph.js#L85
SVG does not allow alt and title attributes on image tags.
SVG2 and SVG in HTML5 allow aria-label however.

We should manually remove the attribute for now; they are currently empty anyway.

Sorry, wrong issue.


Create the votes table

**Title:**
Create the votes table

**Body:**
**User Story**

* As a user, I can tabulate all the votes cast by candidate ID in descending order.

* As a user, I can cast a vote for a candidate.

resolved


modify bot to respond

async def cmd_greet(self):
    greet2 = input("hello")
        if(greet2 == "hello"):
            return response ("how are you doing")

i just kinda started coding help me out pls how am i suppose to make it respond if somebody else says hello

input() is a built-in function that creates a prompt in console. If you want to make a greet function for Discord members, I recommend that you find a way to pull discord messages and set an if-then statement that way.

    if message.content.startswith('hello'):
        await self.send_message(message.channel, 'how are you doing')

Doesnt that means when the bot join the server it will say hello by itself?

No, it means every time you say hello in chat, the bot will respond

what if i want to continue the chat example the bot responds how are you doing and the guy says fine and the bot replys do i make a new line for that respond and also what if other people said fine but to their friends and the bot repond

and also the code doesnt work

What issue do u have

i place it under the on_message as you said but i tried saying hello in chat nothing happened

Send me a screenshot of ur code

Remove message_content = message.content.strip()

Class started ill help u in 1 hr

tried already still nothing happened

cool

Whats the error?

Tried nothing happen

U should have an error

So what now

ok now the hello respond worked but i cant command the bot

and i also put the message_content = message.content.strip() back its now fine(i can command again) but there is still one i need is how do i let the bot respond to the 2nd message example is that the bot says how are you doing if the person says fine then the bot replies to only that message fine and not other fine if other people says it

Make another command that responds to fine

so like     if message.content.startswith('fine'):
await self.send_message(message.channel, 'cool')

Some additional stuff do you know how to let the bot play live stream on youtube

get the review version

Where?

@loobing The review branch should be here: https://github.com/Just-Some-Bots/MusicBot/tree/review

thanks for all your help really appreciated


Add support for providing identity tokens obtained out-of-band

Description

sigstore-python has support for this already, so we just need to accept an identity token via CLI or via the API and plumb the value through.

Specifically, this is the --identity-token flag in sigstore-python: https://github.com/sigstore/sigstore-python/blob/cac62e8e611d4286a49ecda7f33d356381ab7919/README.md#L149-L150

This plumbing should also be useful for our own e2e tests if we use the token published by https://github.com/sigstore-conformance/extremely-dangerous-public-oidc-beacon for our e2e tests discussion in the e2e issue here.


Improve robot to better suit SR2023

This change does the following:

Raise the camera, pan it down, and increase the FOV so it can see over tokens better
Widen the grabber and raise it so it can reach over the arms of the plinth

Here's a screenshot, including a FOV of the camera.

Top-down view with a golden token so you can see the clearance:

Side-on view with a bronze token and a camera perspective:

@Adimote this looks fine in general, however have you seen the CI failures?

linting errors now look unrelated

Yeah, I think that linting error is actually a pyflakes bug!

Scratch that, not a bug, feature was explicitly dropped in the latest major version.

https://github.com/srobo/competition-simulator/pull/358 should fix the lint issue; we can either merge that here or just ignore it.


Feature/test mission scripts

four corner state machine for testing purposes

Updated the readme with info about package contents and made a launch file. Also added a short string to explain the sm script.

Updated the readme with info about package contents and made a launch file. Also added a short string to explain the sm script.


TracePipelines in Pending state might get applied to the trace-collector config

Description
TracePipelines that are in Pending state due to the pipeline count limit might still be applied to the Otel Collector configuration by the reconciliation of a different pipeline.

PR #238 ensures that only TracePipelines and MetricPipelines that are within the limit and have all referenced secrets resolvable get applied to the configuration.


Revert "rsl: 0.2.2-1 in 'humble/distribution.yaml' [bloom]"

Reverts ros/rosdistro#36585
FYI @ChrisThrasher

How are we supposed to deprecate anything?


1.11.2 MMB clicking to get items from side/cheat panel crashes the game

When you click the middle mouse button on the right-side cheat panel (where all the items are). The game crashes. As selecting stacks of items for me is reflexive towards the MMB, I end up crashing every five minutes while building.
In the old renditions of this mod, the MMB is supposed to give the player an infinite/self-replenishing stack of the selected item.

First off, Crash report is needed. Secondly, creative mode is a thing, so infinate stacks have been removed, also due to complications during updating, they were the main cause of most of NEI's ASM and in order to move forward they had to be dropped.

crash-2017-06-08_09.41.51-client.txt
Here's a crash report that occurs.


Registry not being passed to host if registry added after host was already added

Rancher Versions:
Server: 1.3.0
Docker Version:
1.10.3 & 1.12.6
OS and where are the hosts located? (cloud, bare metal, etc):
Virtual
Setup Details: (single node rancher vs. HA rancher, internal DB vs. external DB)
HA
Environment Type: (Cattle/Kubernetes/Swarm/Mesos)
Kubernetes
Steps to Reproduce:
Set up a k8s environment and add hosts
Add a private registry
try to deploy an image from that registry to the k8s environment
Results:
doing kubectl get pods shows error ErrImagePull
Removing the host and then re-adding it fixes the problem but isn't a practical solution.

kubelet calls the rancher credential provider for credentials only on startup. That's why new credentials get pulled whenever you re-add the host(it forces kubelet restart).
This is a kubernetes quirk by design. There's nothing we can do about it. For now at least!

Thanks for the explanation @wlan0

@StrongMonkey Can you look into trying to force a restart for the kubelet service when a registry is added for k8s environments?

When we add this in, we should add in UI that tells users that kubelets will be restarted.

@deniseschannon There is a way to dynamically pull registry credential when pulling image. It is called LazyProvide as @wlan0 suggested. If this is implementable, i think it will be a better way. Otherwise we can then add a hook to restart kubelet service when adding a registry.

@sangeethah This is ready to test. The fix is available in k8s 1.5.4.

Rancher server: v1.5.2-rc2
K8s: 1.5.4
I was able to test using private registry, k8s pods were able to pull and run the private images successfully.


Can the memory area of lossreport be reused?

Is it possible to consider re-using ReportEntry when the old channel is closed.

This is not a feature on our roadmap.


randomdata.FullDate() can return invalid dates

I leverage the randomdata.FullDate() function call in some unit tests by parsing the random full dates into time.Time structs. :
			t, err = time.Parse(dateLayout, randomdata.FullDate())
			if err != nil {
				Fail(err.Error())
			}

What I expected to see : The above fail handler would not be called
What I actually saw :  parsing time "Tuesday 29 Feb 2018": day out of range
This causes intermittent unit test failures.

Since it's intermittent, there aren't steps to reproduce. I think it can be fixed by regenerating the random date if time.Parse returns an error. Simple and only depends on standard library. If I get a chance this week, I'll submit a PR.


Failed to create lock for atomix-builder if XDG_RUNTIME_DIR is not set.

Running stacker build, we hit this issue yesterday.
It failed with Failed to create lock for atomix-builder.
The actual failure was coming from liblxc src/lxc/lxclock.c was calling get_rundir (link).
The failure path was:

XDG_RUNTIME_DIR was not set
HOME was set, but $HOME/.cache/lxc/run/ did not exist.

One thing to note is we didn't get any of the 'INFO' message output... that probably would have been helpful.
One easy way to improve this, which would unfortunately add knowledge to stacker which may at some point be incorrect would be to just have stacker check those conditions early and erroring with:
XDG_RUNTIME_DIR was not set, fallback path of HOME/.cache/lxc/run did not exist.

Also... stacker could just create that HOME/.cache/lxc/run path.
stacker  --storage-type=overlay --oci-dir=stacker/ocidir
   --roots-dir=stacker/roots
   --stacker-dir=stacker/stacker build
   --stacker-file=stacker.yaml
preparing image build-env...
using cached copy of /data/hdd/gmeo/smoser/atomix/tools/collect-gomods
using cached copy of /data/hdd/gmeo/smoser/atomix/atomix/go.sum
using cached copy of /data/hdd/gmeo/smoser/atomix/atomix/go.mod
loading docker://aci-docker-reg.cisco.com/c3/godev:1.0.0-beta_u40
preparing image atomix-builder...
rebuilding cached layer due to use of binds in stacker file
Failed to create lock for atomix-builder
error: allocating the container failed
error: exit status 1

it does feel like the right fix is to just have liblxc use the lxcpath for this locking, vs. trying to do it somewhere global.


Update http4s-client, http4s-core to 0.21.25

Updates

org.http4s:http4s-client
org.http4s:http4s-core

from 0.21.18 to 0.21.25.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.http4s" } ]

labels: library-update, semver-patch

Superseded by #284.


github hook for readthedocs is disabled?

I don't see docs rebuilds for pushed changes in admin panel, I should run it by hands.

fixed


Support HEIC format on both platforms

@ghorbani-m, I was thinking to implement a logic that converts the iPhone image format to png which we can view on every other device. actually we can also use this logic while we are sharing images to any devices because almost all the devices support jpg format


fix(header/sync): add drift to recency detection

Pretty often, when you start a node for the first time, there is a warning complaining about an unsynced trusted peer, while we know that the peer is 100% synced. This warning also means we make an additional Head request for a bad reason. The fix is introducing a half-block time drift. I've tested it like 20 times and wasn't able to reproduce the warning. We also don't need to be super precise about head to worry about this additional half. The main goal here is to get the head quick enough after being a day or more out of sync.

Nice thanks for this


Remove outdated AGL-related files

AGL config and recipes are dunfell-based.
So, it's better to remove them as outdated.
Proper config and recipes are available on the dunfell branch.

There is nothing to build or test in this PR. So I just checked that no references left in the remaining parts of the product.

Ack is added.
Ready to be merged.


Events should be sent when starting and finishing any sendAttachment

On start:
$(window).trigger('sendAttachmentBegin.vtex')

On finish each send:
$(window).trigger('sendAttachmentEnd.vtex')

On finish all sends queued:
$(window).trigger('sendAttachmentEndAll.vtex')

Fixed via d22a97f9b10059d3a545c0d9e54569740f25d594


Changes to infrastructure.py to accept data from symbols and not from…

… command line
@dflanigan @szakeri
What issues does this address?
Fixes #37
WIP #
The goal was to eliminate the command line options for environmental data and to use symols data instead.
Note that only lbaasv2 testing uses this repository, and the test_env.json file required for this change is that for test/functional in f5-openstack-lbaasv2-driver; however, any json file with the referenced keys can be used here with symbols by other projects.

Ship It ! Thanks Phil !


What should we set the overlap values for custom datasets?

I'm trying testing a model with my custom dataset. The number of classes is 10.
When I executed tools/test.py, a error occurred in get_official_eval_result function in pcdet/datasets/kitti/kitti_object_eval_python/eval.py
The details is like below.
  File "xxxx/datasets/kitti/kitti_object_eval_python/eval.py", line xxx, in get_official_eval_result
    min_overlaps = min_overlaps[:, :, current_classes]
IndexError: index 6 is out of bounds for axis 2 with size 6

min_overlaps consists of overlap_0_7 and overlap_0_5.
The overlaps are like below.
def get_official_eval_result(gt_annos, dt_annos, current_classes, PR_detail_dict=None):
    overlap_0_7 = np.array([[0.7, 0.5, 0.5, 0.7,
                             0.5, 0.7], [0.7, 0.5, 0.5, 0.7, 0.5, 0.7],
                            [0.7, 0.5, 0.5, 0.7, 0.5, 0.7]])
    overlap_0_5 = np.array([[0.7, 0.5, 0.5, 0.7,
                             0.5, 0.5], [0.5, 0.25, 0.25, 0.5, 0.25, 0.5],
                            [0.5, 0.25, 0.25, 0.5, 0.25, 0.5]])
    min_overlaps = np.stack([overlap_0_7, overlap_0_5], axis=0)  # [2, 3, 5]

I don't understand that each value of cols and rows of overlap_0_5 and overlap_0_7 for my custom dataset's classes.
Why are not all values of overlap_0_7  0.7? And also why are not all values of overlap_0_5  0.5.?
Please tell me what values should I set on the overlaps for my custom dataset classes (total 10 classes).

just try
overlap_0_7 = np.array([[0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7],
[0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7],
[0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7]])
overlap_0_5 = np.array([[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],
[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],
[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]])

@yinheyanxian
Thank you for your answer.
Your advice is good. The error doesn't occur.
I have another question. Why official source code take the numerical value for overlap besides 0.7 and 0.5?
The variable names doesn't suit with the numerical values.
Is it fine tuning for each classes?

@yinheyanxian
Thank you for your answer. Your advice is good. The error doesn't occur.
I have another question. Why official source code take the numerical value for overlap besides 0.7 and 0.5? The variable names doesn't suit with the numerical values. Is it fine tuning for each classes?

What do you mean by 'the numerical value'? What line of code is this?

I can train and test on openpcdet using custom point cloud datasets
weichat13731082126


Add pointer about GitHub's builtin ToC

https://github.blog/changelog/2021-04-13-table-of-contents-support-in-markdown-files/

Thank you for your contribution!


[PDI-17605] Deleting a folder from the left panel in 8.1 Spoon's repo…

…sitory explorer gives an error

Build Completed
:x: This pull request has errors. They will need to be addressed before it can be accepted. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -B -f 'pom.xml' -pl 'ui' -P '!assemblies' -Dsurefire.runOrder=alphabetical -Daudit -amd clean install

Cleanup Commands
mvn -B -f 'pom.xml' -pl 'ui' -P '!assemblies' -amd build-helper:remove-project-artifact

Changed files
  ui/src/main/java/org/pentaho/di/ui/repository/repositoryexplorer/model/UIRepositoryDirectory.java

Newly Broken Tests:
org.pentaho.di.ui.repository.repositoryexplorer.model.UIRepositoryDirectoryTest.testGetRepositoryObjectsFilled:
:red_circle: java.lang.NullPointerException
java.lang.NullPointerException
	at org.pentaho.di.ui.repository.repositoryexplorer.model.UIRepositoryDirectoryTest.testGetRepositoryObjectsFilled(UIRepositoryDirectoryTest.java:57)

org.pentaho.di.ui.repository.repositoryexplorer.model.UIRepositoryDirectoryTest.testGetRepositoryObjectsNulled:
:red_circle: java.lang.NullPointerException
java.lang.NullPointerException
	at org.pentaho.di.ui.repository.repositoryexplorer.model.UIRepositoryDirectoryTest.testGetRepositoryObjectsNulled(UIRepositoryDirectoryTest.java:82)

org.pentaho.di.ui.repository.repositoryexplorer.model.UIRepositoryDirectoryTest.testRefresh:
:red_circle: java.lang.NullPointerException
java.lang.NullPointerException
	at org.pentaho.di.ui.repository.repositoryexplorer.model.UIRepositoryDirectoryTest.testRefresh(UIRepositoryDirectoryTest.java:95)

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.

:warning: Coverage Changes (click to expand)
org.pentaho.di.ui.repository.pur.repositoryexplorer.model.UISecurityRole

Branch Change: -1.8% :small_red_triangle_down:
Complexity Change: -1.5% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:
Line Change: -0.5% :small_red_triangle_down:

org.pentaho.di.trans.steps.salesforceupdate.SalesforceUpdateMeta

Instruction Change: -0.2% :small_red_triangle_down:

org.pentaho.di.ui.repository.repositoryexplorer.model.UIObjectRegistry

Branch Change: -33.3% :small_red_triangle_down:
Complexity Change: -25% :small_red_triangle_down:
Instruction Change: -30.3% :small_red_triangle_down:
Line Change: -36.5% :small_red_triangle_down:
Method Change: -27.8% :small_red_triangle_down:

org.pentaho.di.ui.repository.repositoryexplorer.model.UIRepositoryContent

Complexity Change: -5.9% :small_red_triangle_down:
Instruction Change: -13.4% :small_red_triangle_down:
Line Change: -14.8% :small_red_triangle_down:
Method Change: -6.7% :small_red_triangle_down:

org.pentaho.di.ui.repository.repositoryexplorer.model.UIRepositoryDirectories

Complexity Change: -50% :small_red_triangle_down:
Instruction Change: -70% :small_red_triangle_down:
Line Change: -50% :small_red_triangle_down:
Method Change: -50% :small_red_triangle_down:

org.pentaho.di.ui.repository.repositoryexplorer.model.UIRepositoryDirectory

Branch Change: -18.3% :small_red_triangle_down:
Complexity Change: -11.5% :small_red_triangle_down:
Instruction Change: -18.1% :small_red_triangle_down:
Line Change: -17.9% :small_red_triangle_down:
Method Change: -9.3% :small_red_triangle_down:

org.pentaho.di.ui.repository.repositoryexplorer.model.UIRepositoryObjects

Complexity Change: -66.7% :small_red_triangle_down:
Instruction Change: -71.4% :small_red_triangle_down:
Line Change: -66.7% :small_red_triangle_down:
Method Change: -66.7% :small_red_triangle_down:

org.pentaho.di.ui.repository.repositoryexplorer.model.UITransformation

Complexity Change: -11.1% :small_red_triangle_down:
Instruction Change: -7.1% :small_red_triangle_down:
Line Change: -10.5% :small_red_triangle_down:
Method Change: -14.3% :small_red_triangle_down:

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -B -f 'pom.xml' -pl 'ui' -P '!assemblies' -Dsurefire.runOrder=alphabetical -Daudit -amd clean install

Cleanup Commands
mvn -B -f 'pom.xml' -pl 'ui' -P '!assemblies' -amd build-helper:remove-project-artifact

Changed files
  ui/src/main/java/org/pentaho/di/ui/repository/repositoryexplorer/model/UIRepositoryDirectory.java
  ui/src/test/java/org/pentaho/di/ui/repository/repositoryexplorer/model/UIRepositoryDirectoryTest.java

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.

:warning: Coverage Changes (click to expand)
org.pentaho.di.trans.steps.salesforceinsert.SalesforceInsertMeta

Instruction Change: -0.1% :small_red_triangle_down:

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -B -f 'pom.xml' -pl 'ui' -P '!assemblies' -Dsurefire.runOrder=alphabetical -Daudit -amd clean install

Cleanup Commands
mvn -B -f 'pom.xml' -pl 'ui' -P '!assemblies' -amd build-helper:remove-project-artifact

Changed files
  ui/src/main/java/org/pentaho/di/ui/repository/repositoryexplorer/model/UIRepositoryDirectory.java
  ui/src/test/java/org/pentaho/di/ui/repository/repositoryexplorer/model/UIRepositoryDirectoryTest.java

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.

:warning: Coverage Changes (click to expand)
org.pentaho.di.trans.steps.gpload.GPLoadMeta

Branch Change: -0.9% :small_red_triangle_down:
Complexity Change: -0.8% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:

org.pentaho.di.trans.steps.salesforceinsert.SalesforceInsertMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.salesforceupdate.SalesforceUpdateMeta

Instruction Change: -0.2% :small_red_triangle_down:


Script error:line 12: invalid syntax

Whenever I open the sslstrip.py script it shows the error : "Script error:[Path Name]line 12: invalid syntax" and the connection is not established

You're using an outdated Python/mitmproxy version.
For further support and how-to questions, please use StackOverflow. Thanks!


Metal pipeline caches are unused

https://github.com/ppy/veldrid/pull/10 Added a few caches for the pipeline state, but the only calls to them are TryGetValue() and Remove().

@frenzibyte are you interested in tackling this one?

Actually I'll just fix this myself, it's a 3 line change from the looks of it.


autosuspend: init at 4.0.0

Motivation for this change
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 140532 at e6d7824f run on aarch64-linux 1

1 package built successfully:

autosuspend

1 suggestion:

warning: unused-argument
Unused argument: python3.
Near pkgs/os-specific/linux/autosuspend/default.nix:1:42:
  |
1 | { lib, fetchFromGitHub, python3Packages, python3 }:
  |                                          ^

I don't understand why the check fails with undefined variable 'dateutil'
It builds correctly on my Linux NixOS...

I don't understand why the check fails with undefined variable 'dateutil' It builds correctly on my Linux NixOS...

there is a dateutils and a python-dateutils

Than you all!


Homebrew packaging

Please make extraterm just one command away from all our boxes.
Thanks in advance :pray:
TY
J

This is somewhat related to #417


bug/Dynamic-table-comment-on-syntax

resolves #769
docs N/A
Problem
This will fix the comment syntax for dynamic tables
from comment on dynamic_table to comment on dynamic table
Solution
Just splitting the relation_type based on '_' only on dynamic tables
Checklist

[x] I have read the contributing guide and understand what's expected of me
[ ] I have run this code in development and it appears to resolve the stated issue
[ ] This PR includes tests, or tests are not required/relevant for this PR
[ ] This PR has no interface changes (e.g. macros, cli, logs, json artifacts, config files, adapter interface, etc) or this PR has already received feedback and approval from Product or DX

https://github.com/dbt-labs/dbt-snowflake/issues/769

Thanks for the PR @kaarthik108! I just had two nits, but otherwise I'm good with it as long as tests pass.

@mikealfare a curious question:
Would it simplify the code paths if this:
 DynamicTable = "dynamic_table"

is updated to this?
 DynamicTable = "dynamic table"

We can imagine a world in which "this one weird trick" irons out everything nicely, and all the if/elses go away ✨
We can also imagine a word in which it creates a bunch of wrinkles elsewhere that we don't want 🙅
Obviously up to you either way you want to go, but at least a possibility to consider.

@mikealfare a curious question:
Would it simplify the code paths if this:
 DynamicTable = "dynamic_table"

is updated to this?
 DynamicTable = "dynamic table"

We can imagine a world in which "this one weird trick" irons out everything nicely, and all the if/elses go away ✨
We can also imagine a word in which it creates a bunch of wrinkles elsewhere that we don't want 🙅
Obviously up to you either way you want to go, but at least a possibility to consider.

That's a good question, and one we've discussed a bit due to issues like this one. dbt's interface almost everywhere (I say "almost" because I can't confirm it off the top of my head) is snake case. After discussing, we landed on keeping it snake case for consistency. I also wouldn't want the enum to serve multiple purposes (and I don't like that we currently do that in other places). It should solely focus on identifying the type of relation we're working with. The string representation of the enum also happens to also be the text that gets put into the jinja template most times, specifically for tables in views. However, that obviously doesn't work for dynamic tables and materialized views, which have spaces. It also doesn't even work for tables/views all the time. IIRC, you can't drop a view in postgres by running drop view name_of_my_view; it throws a syntax error. You have to run drop table name_of_my_view. So we can't generalize this to drop {{ relation.type }} {{ relation }}. It also can't be generalized to drop table {{ relation }} because this fails for materialized views. This also falls down once you get to more complicated statements, such as the create statement. We want this to be uniform across all statements for the adapters that we maintain. So while it does create a lot of boilerplate, copy/paste code, we feel this is a better, more consistent, more maintainable approach.


Cleanup, add docBlocks, improve tests

Q
A

Is bugfix?
❌

New feature?
❌

Breaks BC?
❌

Fixed issues
-

👍


Heavens Capstone Tweak

I will lump both the final revelation and the manifestation of heavens spirit/mystery together. The capstone does not dynamically respond to changes in stats. I tested this using headbands. For example if charisma score is +4 and we equip bookworm's headband, the score becomes +3 but the capstone bonus to saves remains +4. It updates values after a reload or re-adding the feature through toybox. This holds true for animal buffs and possibly other stuff like cognatogen, ability damage etc.
Hopefully this small edit is serviceable.

Thanks, it's a bit daft I missed this as Kadyn wrote the exact same but into some stuff he added that I fixed.
I'll add this tomorrow after I add something small to go with it.


Community page remembers previous page scroll position

Description
When I open the community page it remembers the previous page scroll position.
Screenshots/testimonials

An alternate approach can be to open the targeted community in the new tab and I think than can be easily implemented.

An alternate approach/solution to this problem can be to open the targeted community in the new tab. And I think this might solve the issue.

another way is to write a high order component that will wrap the routes and using effectHook on page mount we can scroll it back to the top

Taking this up!


Use private_endpoint_network_policies_enabled instead since enforce_private_link_endpoint_network_policies will be removed in 4.0 provider.

Fix #246 by using private_endpoint_network_policies_enabled instead in example code.

Close since the private_endpoint_network_policies_enabled is computed in 3.x and could be changed by the service side.


License?

What would be the license for this fine code?
Thanks!

@pombredanne  Thanks ! for visiting done.


Update the Modal component button positioning based on the latest wireframes

See: https://www.flowdock.com/app/rulemotion/resin-frontend/threads/z9kHu72JQ0nt5nMnlmCDKGqEHzx

@thgreasi, the styleguide is now updated.


Criar o workflow de teste A/B

https://www.javascriptjanuary.com/blog/ab-testing-in-react
https://www.npmjs.com/package/@marvelapp/react-ab-test
https://vwo.com/tools/ab-test-duration-calculator/


Fix: Refresh only when user initiates

#1866 still persists after the update

Hi @Aditi-Singh16
in my opinion, I think we should keep it as it because of the following reasons:

users can see the latest data without needing to take action to refresh but can still force a refresh if desired.
Allows for more efficient data fetching and a better user experience overall.

Also, a manual refresh has its cons such as:

Users might not know when a refresh is needed and may miss important updates.
Adds an extra action for users to perform, which could affect user experience.

Is there a reason you prefer a manual refresh?

Oh okay, no specific reasons though, I just saw an open issue regarding this, hence created a PR. After looking at your reasons, I think it makes sense to have automatic refresh


I am not able to find "login" of the extension as described in readme

Verify it's not a duplicate bug report

[X] I searched for similar bugs reported on GitHub and nobody has reported a similar issue. Search all issuees.

Verify troubleshooting guide is missing steps to solve this issue

[X] I read Troubleshooting guide on Readme and there is not a guide on how to solve my problem.

Describe the Bug

All you need to do is click Login or ask a question to get started!
Click on the ChatGPT extension icon on your sidebar and hit Login button.
I am not able to find the login button anywhere, and I made sure the vscode is newest version.

Please tell us if you have customized any of the extension settings or whether you are using the defaults.
I was trying to use a browser auto-login method
Additional context
No response

found it, in the past I only used extension that has a login button in extension page...

found it, in the past I only used extension that has a login button in extension page...

@Yoark to use the browser autologin method, you need to change your setting and then make sure you also select the right model to use in browser. Currently the extension's default is API Key method.

Thanks, figured out!😆


:bug: fix(field): horizontal padding right and label text alignment

Current Behavior

Fields without a message have a right padding
Label is positioned to the right but the text not

Expected Behavior

No right padding
Label text align to the right

Steps to Reproduce

Version
latest
Browsers
No response
Device
No response
Code Reproduction URL
No response
Additional Information
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

/cib


#323 - use XmlException for errors with xml metadata

Closes #323
Used XmlException for any problems with xml metadata instead of IOException

Job gh:artipie/rpm-adapter#373 is not assigned, can't get performer


Traefik Password protected site

Is there a way to monitor a password protected site which has basic authentication from Traefik?
When I try, Gatus thinks it is offline.
I need my sites inaccessible to strangers but still would like to be able to monitor them.
If that is not possible I would like to make it a feature request! :)

Technically, Basic authentication just requires specifying a header, which is supported by Gatus.
It should look like this:
endpoints:
  - name: example
    url: "https://example.org/"
    headers:
      Authorization: "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
    conditions:
      - "[STATUS] == 200"

where dXNlcm5hbWU6cGFzc3dvcmQ= is the result of a base64 encoding of username:password.

That helped a lot!
Thanks, it is working now 😃


Update LICENSE

Good points - also, internal discussions and initial repo transfer to the org happened in 2017 so I'm leaning towards that as well. Merging!


Error: Could not find any packages named elm/browser.

Hello, I can not install this package when run elm package install elm/browser
I got the message:
Error: Could not find any packages named elm/browser.

Here are some packages that have similar names:

    elm-lang/svg
    elm-lang/core
    elm-lang/dom
    elm-lang/mouse

Maybe you want one of those?

My elm-package.json is:
{
    "version": "1.0.0",
    "summary": "helpful summary of your project, less than 80 characters",
    "repository": "https://github.com/user/project.git",
    "license": "BSD3",
    "source-directories": [
        "."

Hey, this looks like something you can get answered more quickly on the elm slack channel: elmlang.slack.com
This specific error seems to be that elm/browser is for version 0.19 and you are using elm 0.18.
You could run https://github.com/avh4/elm-upgrade which should help you with the transition.

Yes, it looks like if you run elm --version it would say 0.18 given the stuff you have said here.
Thanks @brasilikum for pointing OP in a good direction. That is great advice!


zUnit Processing - add support for tests without playback file

Today, there is an assumption, that the test configuration has a playback file. This is not always the case.

delivered


Squids are WaterMobs

Created WaterMobStore for GlowWaterMob implementation
Squids have a size of 0.8 since 1.9 (previously 0.95)

Thank you for your contribution!


[Bugfix][TVMScript] Preserve foldable constants while parsing

Avoid folding constants while parsing TVMScript.  This looks like a bug, which was introduced as part of the parsing changes implemented in https://github.com/apache/tvm/pull/14200.
The operator overloads in python delegate to the C++ operator overloads, which perform constant folding.  While useful in most circumstances, the script parsing should avoid performing any manipulations while parsing, as this can invalidate unit tests that rely on known TIR inputs.  This wasn't caught by any of the existing unit tests in test_tvmscript_roundtrip.py, as the inputs to those unit tests are generated by the parsing, and already have their constants folded.
There are a few edge cases that would still be constant-folded while parsing the TVMScript, but these only impact subexpressions that do not contain TVM-specific constructs.  For example, T.evaluate(1 + 2) would be parsed as T.evaluate(3), because the 1 + 2 subexpression is evaluated during parsing.

@cyx-6 introduced a behavior in the printer where foldable expressions (e.g 1  + 2) are instead printed as it's complex form (e.g. T.Add(1, 2)). Therefore the dispatch was removed accordingly. Do you think it's a reasonable move?

Thank you, and that makes sense to use T.Add(1,2) when printing integers, so that it can correctly round-trip from TIR -> TVMScript -> TIR.
That said, I think this dispatch still makes sense to keep, at least for PrimExpr argument types, so that it also handles hand-written TVMScript as expected.  Writing TVMScript by hand has been very useful, both when debugging and developing new passes, as a human-readable mapping with TIR.  (This has also been a huge benefit as compared to using the Python API directly, because 0 < x in Python gets translated as tir.GT(x, 0) due to a limitation in Python's operator overloading, whereas TVMScript correctly generates tir.LT(0, x).)
While the changes to printing could be replicated in the hand-written TVMScript, it's an unexpected change that needs to be remembered, especially when i + offset could have structurally different TIR depending on whether offset is defined within the TVMScript or as a dynamic parameter.

Hi @Lunderberg Here, we migrate from dispatch to the direct computation based on following concerns:

Methods like T.Add do not support the feature of auto-value-promotion, eg. T.int64 + 1.
For your concerns about 0 < x, current TVMScript parser does dispatch these logic ops, like <, >, !=. For those direct computation operators, Python support to overload the __radd__, as 1 + x will be parsed as T.Add(1, x). So we do not worry about the implicit swap in binary operators over non-PrimExpr op PrimExpr.
As for unittests, there are very few cases when dispatch is neccessary, like x + 0 generated by meta-schedule. Both dispatch and direct computation make no difference in most of our unittests set. Refer to #14200, there are only 5 unittests making difference.
And direct computation keeps consistent with the PrimExpr original logic as much as possible. And we do offer directly calling T.Add in TVMScript as backdoor, if needed in unittests.
Actually, the constants folding only occurs between non-PrimExpr, like 1 + 1, and some IntImm, FloatImm.

The primary reason we are changing this is for consistency with python interface. In python, if we have
a = IntImm("int64", 1)
b = IntImm("int64", 2)
print(a + b)

then it const-folds to 3. Therefore, we kinda favor having the same behavior in TVMScript. What do you think?

Thank you @cyx-6 , and those are definitely good reasons.  I like the general simplifications, and that especially makes sense to re-use the auto-value promotion.

Actually, the constants folding only occurs between non-PrimExpr, like 1 + 1, and some IntImm, FloatImm.

As a slight correction here, you can also get constant folding between two PrimExpr, such as tvm.tir.Var('x','int32') + tvm.tir.IntImm('int32',0), but your general point holds.

The primary reason we are changing this is for consistency with python interface.

Hmm, good point.  I had been seeing TVMScript as primarily a representation of the underlying TIR/Relax, rather than a scripting language in itself.  As a representation, it should match the underlying TIR/Relax as much as possible and avoid constant folding, whereas a scripting language should produce the best output and perform constant folding.
I suppose my key question is: should TVMScript be viewed as a compact representation of TIR/Relax, or as a scripting language?

i think one tradeoff here is that we do introduce some form of sugaring, like meta-programming etc.
But we also need to serve some purpose of roundtripping, in which case the printer should detect such cases and operate accordingly. So in that regard, because we already have T.Add which explicitly constructs and do not run constant fold, we do have a tool for roundtripping as well.
So we can view operator+ as a magic op that may constant fold, while having the printer to be careful and print out explicit T.Add if there is a desire to not to.

Looks like #14320 has been merged (thank you @junrushao !), closing this PR.