Fix bug in opossum exporter

Description
While looking at the function for exporting files for Opossum I identified a bug:
When checking if an external attribution already was created the comparison never returned True as a dictionary was compared with an instance of Attribution.
In order to resolve this conversion to the dict (which is ultimately written in the json file) is done at a later stage. Furthermore, a type annotation was added.
Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Documentation update
[ ] Refactoring, Maintenance
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

@nicarl
Thank you for reviewing and fixing the bug in the opossum exporter!


Traits don't play well with autoload

I get this after checking out master,
Fatal error: Unknown trait 'XHPHelpers' in /var/web/PublishSpace/CP/External/vendor/facebook/xhp-lib/src/html/Element.php on line 18

If you didn't run composer update, you'll need to run composer dump-autoload to get the new autoloader.

Thanks Simon :wink:


remove results folder in tear down

@beliaev-maksim @Samuelopez-ansys
please review

Don't think my review count anymore :)


Ctrl+Click on the name of a module doesn't open it

Issue Report Checklist

[ x ] Searched the issues page for similar reports
[ x ] Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
[ x ] Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)
[ ] Could not reproduce inside jupyter qtconsole (if console-related)
[ x ] Tried basic troubleshooting (if a bug/error)

[ x ] Restarted Spyder
[ ] Reset preferences with spyder --reset
[ ] Reinstalled the latest version of Anaconda
[ ] Tried the other applicable steps from the Troubleshooting Guide

[ x ] Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description
When using control + click on the name of a module, Spyder used to open that module in another tab. But for some reason this doesn't work anymore for me.
What steps reproduce the problem?
Create a script test1.py and save it:
#test1.py
print("a")

In the same folder, create the following script test2.py:
#test2.py
import test1

What is the expected output? What do you see instead?
Now, when working on test2.py, ctrl+clicking on the word "test1" should open the script test1.py in another tab... but that doesn't happen as it should be.
 I was trying to check this but the last version of 4.x 4.2.5 doesn't allow to do it neither (unless you either are working inside a spyder project or using relative imports i.e .untitled1). Previously it worked for you without having and active project? Let us know!

Hi @robobobeng thanks for the feedback! I was trying to check this but the last version of 4.x 4.2.5 doesn't allow to do it neither (unless you either are working inside a spyder project or using relative imports i.e .untitled1). Previously it worked for you without having and active project? Let us know!

Before updating to 5.0.3 I had not been using Spyder for a while (several months), so I don't remember the version number of the Spyder I was using before that. But I know that it used to work. I never use projects, I only write Python scripts outside of any Spyder project.

Thanks for the info @robobobeng checking a little bit more I think the problem is that at some point we removed adding the current working directory to the PYTHONPATH automatically. If you want to have again such type of navigation with Ctrl + Click you will need to add first with the PYTHONPATH manager (Python icon in the toolbar) the directory were your scripts are or use a Spyder project to wrap everything.
Let us know if the info above helps

Closing due to lack of response.

I think we can fix this without adding directories to our PYTHONPATH manager. I'll take a look at that for 5.1.0

Closing as a duplicate of issue #13358.


Add simple flow 1.26 tests

Issue #, if available:
Description of changes:
Testing (if applicable):
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


balance tx with additional utxo map

Closes #1000, #1074
develop merge + review changes + new transaction output enconding additions
Pre-review checklist

[x] All code has been formatted using our config (make format)
[x] Any new API features or modification of existing behavior is covered as defined in our test plan
[x] The changelog has been updated under the ## Unreleased header, using the appropriate sub-headings (### Added, ### Removed, ### Fixed), and the links to the appropriate issues/PRs have been included

@ngua I added a Plutip test. It is still a WIP. I will probably need to move the code somewhere else, like in the examples. I still need to add support for native scripts. Also, the evaluation with the additional UTXOs succeeds at the moment, but because the min calc fee is doing an utxo query on the additional UTXOs, this test fails. See #1074. I should test the evaluation without balancing, so we won't block this PR, but a chaining Plutip test would help sensitize CTL developers not to use ledger queries on data that might include UTXO that are not submitted yet.

@klntsky @ngua I fixed this issue with the min fee by adding additional UTXOs to the function so we can include them in the getSelfSigners, and there we can differentiate between UTXOs on the ledger and the ones that aren't. The Tulip test is not failing anymore!
I will now add native script support, make the review fixes, create an example for chaining, and update the CHANGELOG.

@ngua I left the balancing functions like it is because I don't have this new interface on this branch. Besides this, I think I got everything. Can you please review my changes?

Btw. In the example, I added the createAdditionalUtxos function. Perhaps we can move and expose it to the contract API.

@klntsky @jy14898 Should we close this PR?

@klntsky @jy14898 Should we close this PR?

Yeah that's fine, if these are the last changes @the-headless-ghost is making


Need a feature to forward audio without using USB cables. Instead prefering wifi

Plugging in and out usb cables are very annoying.
Is there a wireless feature available in USBAudio?
If not kindly setup one.
if yes help me to configure

No, AOA is a protocol over USB.


Add hooks to let other plugins extend the Tasks plugin.

Description

Add hooks to let other plugins extend the Tasks plugin.
Motivation and Context

I needed a way to extend the Tasks plugin with my own functionality (see discussion).
How has this been tested?

Screenshots (if appropriate)
Here's an example of how other plugins can make use of the new hooks to extend the Tasks plugin's functionality:
Use like

Renders as

Implemented in new plugin
export const extendTask = (listItem: HTMLLIElement, task: any, api: any) => {
  if (api.layoutOptions.showDoTodayButton) {
    addDoTodayButton(listItem, task, api);
  }
}

export const extendParser = (line: string, layoutOptions: any) => {
  if (line === 'show do today button') {
    layoutOptions.showDoTodayButton = true;
    return true;
  }

  return false;
}

function addDoTodayButton(listItem: HTMLLIElement, task: any, api: any) {
  const today = window.moment();
  const isToday = task.scheduledDate && task.scheduledDate.format('YYYY-MM-DD') === today.format('YYYY-MM-DD');
  const doTodayBtn = listItem.createEl('a', {
      text: isToday ? 'not today' : 'do today',
      cls: 'tasks-do-today',
  });

  doTodayBtn.onClickEvent((event: MouseEvent) => {
      const updatedTask = new api.Task({
          ...task,
          scheduledDate: isToday ? null : today,
      });

      api.replaceTaskWithTasks({
          originalTask: task,
          newTasks: [updatedTask],
      });
  });
}

Types of changes

Changes visible to users:

[ ] Bug fix (prefix: fix - non-breaking change which fixes an issue)
[x] New feature (prefix: feat - non-breaking change which adds functionality)
[ ] Breaking change (prefix: feat!! or fix!! - fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation (prefix: docs - improvements to any documentation content)
[ ] Sample vault (prefix: vault - improvements to the Tasks-Demo sample vault)

Internal changes:

[ ] Refactor (prefix: refactor - non-breaking change which only improves the design or structure of existing code, and making no changes to its external behaviour)
[ ] Tests (prefix: test - additions and improvements to unit tests and the smoke tests)
[ ] Infrastructure (prefix: chore - examples include GitHub Actions, issue templates)

Checklist

[x] My code follows the code style of this project and passes yarn run lint.
[x] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] My change has adequate Unit Test coverage.

Terms

[x] My contribution follow this project's contributing guide
[x] I agree to follow this project's Code of Conduct

Wow. It looks amazing. Huge thanks for working on this. It would open up some really exciting avenues with the plugin.
That's a lot to get my head around, in not very much code...
It might also give ideas of how to easily add new button functionality in to the existing Tasks plugin.
How to test it
I notice you haven't filled in the testing section. How are you imagining I might test it?
I don't suppose you could share a link to your test plugin please, so that it could be tested more quickly and easily?
GitHub Actions
I see that the 'verify' GitHub Action failed. Looks like there are some ESLint issues????
Implications for future changes to the Tasks code
What impact would it have on future refactoring of the Tasks code? If this were published, for example, would it prevent changes to the interface of the Tasks class? Asking because there is a lot of public data that I would want to protect at some point... I would hate to break a load of people's customisations - but would also prefer not to have our hands tied for future refactorings...
Again, very many thanks...

Hi @alexthewilde - I hope you're OK. I just wanted to make sure you've seen my comments above...

Here's the very simple obsidian-tasks-extended plugin to show how a Tasks Extension plugin can be written.

I see that the 'verify' GitHub Action failed. Looks like there are some ESLint issues????
I look into this.

What impact would it have on future refactoring of the Tasks code?
This change is orthogonal to the existing code, so it won't break any existing functionality.

Test plugin

Here's the very simple obsidian-tasks-extended plugin to show how a Tasks Extension plugin can be written.

Thank you.
I was able to install a build of this PR in to the sample vault in the tasks repo - and to follow your instructions in the above example repo.
It ran with no errors, and will allow me to experiment with the changes, which is great.
This was my task block:
```tasks
group by happens
show do today button
```

Oddly, the new button was displayed on every task. I cannot see the logic error - but it would be good to understand the location of any problem, in case it affects the PR.

The feature's impact on future changes to the Tasks code

What impact would it have on future refactoring of the Tasks code?

This change is orthogonal to the existing code, so it won't break any existing functionality.

I meant the reverse. Whether I will be prevented from improving the code in the Tasks repo, such as by adding missing abstractions.
For example, your sample plugin contains this code:
  doTodayBtn.onClickEvent((event: MouseEvent) => {
      const updatedTask = new api.Task({
          ...task,
          scheduledDate: isToday ? null : today,
      });

      api.replaceTaskWithTasks({
          originalTask: task,
          newTasks: [updatedTask],
      });
  });

What if scheduledDate becomes a class, instead of a Moment?
What if api.replaceTaskWithTasks() changes the parameters it takes.
As soon as this feature is published, my hands will be tied from changing any current that is currently accessible to people's extensions.
See Hyrum's Law..

I see that the 'verify' GitHub Action failed. Looks like there are some ESLint issues????

I look into this.

Thanks. All are green now.

(FYI I've ticked the 'My change requires a change to the documentation.' box in the original description... )

For example, I presume it means removing all public data in classes that users might reasonably want to use in their extensions - replacing them with getters, and where relevant, setters.

That's right. Exposing an API comes with certain responsibilities. That's the trade-off I guess.
It would actually be better if the Tasks plugin exposed its API methods like this. This allows other plugin developers to access them like app.plugins.plugins['obsidian-tasks-plugin'].replaceTaskWithTasks().
Then the hook implementations wouldn't need to get the api object passed in anymore. That's anyway a workaround for the missing plugin API.

Oddly, the new button was displayed on every task. I cannot see the logic error

There's no logic error. Displaying the button on every task is intended. You can explicitly control this via show do today button for your query.

What's the point of the button then?

For example, I presume it means removing all public data in classes that users might reasonably want to use in their extensions - replacing them with getters, and where relevant, setters.

That's right. Exposing an API comes with certain responsibilities. That's the trade-off I guess.

Good, we are agreed.

It would actually be better if the Tasks plugin exposed its API methods like this. This allows other plugin developers to access them like app.plugins.plugins['obsidian-tasks-plugin'].replaceTaskWithTasks().
Then the hook implementations wouldn't need to get the api object passed in anymore. That's anyway a workaround for the missing plugin API.

I don't understand this at all. I mean, I don't understand in what way the Tasks code would need to change in order to do what you suggest.

I don't understand this at all. I mean, I don't understand in what way the Tasks code would need to change in order to do what you suggest.

Actually, I now kind of do get it. Does all the use of any again hide the fact that if the interface of a Task changes, it will break client code.
Should we be looking to expose some kind of .d.ts (?) file to publish an interface.

Should we be looking to expose some kind of .d.ts (?) file to publish an interface.

Exposing types doesn't help with exposing the actual methods. You actually need to make each method that you want to expose a member of the main class.
To be frank, what we're talking about here are developer ergonomics. It's not really that important right now. Either way, if you change the plugin's API methods (regardless of how they're being exposed), then this needs to be communicated to dependent developers, e.g. via "breaking change" in your Changelog.

Oddly, the new button was displayed on every task. I cannot see the logic error

There's no logic error. Displaying the button on every task is intended. You can explicitly control this via show do today button for your query.

What's the point of the button then?

To toggle the scheduled date to today or null i.e. reset it.
I might be the only person on the planet who needs this. But now I'm available to build it myself, instead of begging you to add this button to the Tasks core plugin :)

To be frank, what we're talking about here are developer ergonomics. It's not really that important right now. Either way, if you change the plugin's API methods (regardless of how they're being exposed), then this needs to be communicated to dependent developers, e.g. via "breaking change" in your Changelog.

Indeed.
To clarify, the reason I'm persisting with this is that my very strong philosophy is to work hard to minimise the number of breaking changes.
I do this in all projects that have external users, but especially in Tasks, as it has around 175,000 downloads now, and I know for sure that many people will take advantage of your new feature when it is released.
That focus is mainly for the benefit of users - but it's also for my own benefit. When I took over looking after Tasks, I completely under-estimated how much of my own time would go just on user support. And a breaking change would undoubtedly worsen that.
If someone shares a Tasks extension that a bunch of people use, that is later broken by a Tasks update, my support load is guaranteed to increase.
So I am after a better backwards-compatibility story than "log a breaking change in the chagnelog".

@claremacrae that makes absolute sense. Btw thank you for maintaining the plugin! I love the simplicity of letting me create tasks (instead of task notes) while I'm in the flow of writing.
Regarding backwards-compatibility: right now, only  replaceTaskWithTasks gets exposed. Unless you plan to change this method frequently, you shouldn't have to worry about too many regressions.
The more API methods you expose however, the more things can break. So you should indeed be careful here.

@alexthewilde Thank you, that helps a lot.
The thing I'm missing, though, is that you say only replaceTaskWithTasks gets exposed.
But it's actually the Task class that I'm concerned about. It is a monster. What am I not understanding here, about why future changes to it would not be a problem for users?
Another example, what if someone wanted to change the recurrence rule for a task. That's another class....

But it's actually the Task class that I'm concerned about. It is a monster. What am I not understanding here, about why future changes to it would not be a problem for users?

Yes indeed. Changes to the Task model (not necessarily the class though) would affect everyone who uses it in an extension.
I think it depends on how stable the plugin is. If you plan on turning everything upside down, then I'd certainly not build something on top of it!

I think it depends on how stable the plugin is. If you plan on turning everything upside down, then I'd certainly not build something on top of it!

I'm still learning about the code, and nothing in the following is cast in stone or even certain to happen...
One of the main reasons that user support takes time on this plugin is because there are some missing abstractions that make it hard than people assume. So I keep answering the same questions over and over again (taking time away from development)
Some examples - a far from complete list:

I want to use custom formats for the due date, etc in my tasks.

Sorry no. There is no abstraction for date data (Moment is used directly) so implementing that currently would be a ton of work.

I don't like emojis, I want to use [dataview format, or one of a myriad of other formats]...

Sorry no. All the parsing of Task lines is in the already massive Task class. There should be abstractions for the various different formats.

My task is in an H3, I want to search text in its parent H1, H2, H3

Sorry no. Tasks are stored in a flat list, and they only know about their immediate previous heading. We should have an abstraction for sections in markdown files.

I want to search nested tasks - or show nested/indented tasks

Sorry no. Tasks are stored in a flat list

I am really good at refactoring existing code safely. I can do all these things. I just need some days of uninterrupted spare time to focus on these things, and the irony of so much time going on user support is that it makes that harder...
I'm even considering reworking all the parsing code to base it on the dataview API.

OK - on re-reading the above, I think that the answer is that I am happy to commit to keeping working any extensions that are written against Tasks 1.x...
And in the documentation I will say to expect that they will need to be updated when Tasks 2.x is released. That there is no compatibility guarantee that extensions will continue to work across major version changes.
This all means that this PR will need to include a smoke test to allow testing of an extension.
Here is the current smoke testing page:
obsidian-tasks/resources/sample_vaults/Tasks-Demo/Manual Testing/Smoke Testing the Tasks Plugin.md
So the smoke test should look something like:

Load the page blah
Switch to Reading view
Confirm that [some customisation is visible]
Confirm that nothing no errors were written in the console

As well as being useful for smoke testing, the new page in the sample vault will be useful for people to test out and experiment with the new capability.

This all means that this PR will need to include a smoke test to allow easy manual testing that an extension still works with the current (v.1.x) code.

Maybe I'll find some time on the weekend.
Do you see yourself capable of writing smoke tests?

Maybe I'll find some time on the weekend. Do you see yourself capable of writing smoke tests?

Yes, of course I can. Time permitting, of course.
This one is a lot more work though, as it involves figuring out how to include a sample plugin inside this vault - and ensuring that when someone downloads the sample vault from the Artifacts list in the GitHub Actions log, it has the uptodate build of the extension plugin, with all its dependencies built.
So the bulk of the work here is not in writing the the 1 or 2 sentences in the smoke test, it is ensuring that it only takes someone a minute or so to run the smoke tests, from the download.

Or maybe the extension demo/test plugin goes in another repo in the obsidian-tasks-group user, so that it can have its own Github Actions - and it's easy for people to fork it and modify it to their heart's content?
And then it is just installed inside the sample vault...

@claremacrae I'm afraid that writing smoke tests will take me too much time figuring things out and I don't have that time really. Sorry that I can't be of help here. I was hoping that you could go forward with this task. If not, maybe somebody else from the community with more experience in that regard?
Btw. feel free to fork Obsidian Tasks Extended into your GitHub account if need be.
I will update the Docs on how to use the new hooks.

Hi @alexthewilde No problem. I am definitely happy to carry on with it and get it to release.
As an aside, the reason I assigned a few people to their PRs was that I've created a personal board to keep track of the many things in flight here, and it helped to see names against the creators of the PRs... Nothing more than that.

Btw. feel free to fork Obsidian Tasks Extended into your GitHub account if need be.

That's great - thank you!

I will update the Docs on how to use the new hooks.

Much appreciated.

re: https://github.com/obsidian-tasks-group/obsidian-tasks/pull/1249#issuecomment-1290283445
specifically the following line

It would actually be better if the Tasks plugin exposed its API methods like this. This allows other plugin developers to access them like app.plugins.plugins['obsidian-tasks-plugin'].replaceTaskWithTasks()

I believe this is related to #1389.

Implications for future changes to the Tasks code
What impact would it have on future refactoring of the Tasks code? If this were published, for example, would it prevent changes to the interface of the Task class? Asking because there is a lot of public data that I would want to protect at some point... I would hate to break a load of people's customisations - but would also prefer not to have our hands tied for future refactorings...

The above is now a solved problem!
As part of the new group by function facility, I've started publishing a documented set of properties that can be accessed on Tasks, and I will guarantee these going forwards. They are mostly getters that are separate from the stored data, so do not prevent future refactorings...
https://publish.obsidian.md/tasks/Scripting/Task+Properties
For now, these properties are read-only, and we would need to define a convention for updating task objects that is independent of the storage.
But with this, in conjunction with the recently added API, I can see that adopting the ideas in this PR could become very feasible in the foreseeable future.
https://publish.obsidian.md/tasks/Advanced/Tasks+Api

Setting to draft status any PRs which are not currently mergable, but will be useful in future.


Kitematic: Error in creating/downloading existing hello-world image

Information about the Issue
I am downloading 'hello-world-nginx' image in Kitematic on Windows 7 64 bit machine. While downloading I got the following error 'read tcp <IP_ADDRESS>:34856-><IP_ADDRESS>:443: read: connection reset by peer'.
Steps to reproduce the behavior

Click on Kitematic. Select 'Use VirtualBox'.
Login and then click on 'Create' for hello-world-nginx image.

Please make sure that you're on a stable connection and use a solid DNS such as Google DNS.


Euler-Finance Ethereum Missing Rewards

Euler Finance distributes rewards, but our subgraph does not reflect this in the code.

closed with #1429


Add custom function that gets substituted with the current temporal partition

A transform materialization can either happen incrementally or with full replacement. If it gets materialized incrementally, we need the ability to inject the current temporal partition that's being processed into the query. This is useful both in terms of clarity for users as they define their transforms and for cases like the following, where the incrementally processed node requires access to a window defined based on the current temporal partition:
SELECT
  two.user_id
  SUM(two.clicks) AS clicks_sum
FROM default.some_fact_source two
WHERE two.my_date BETWEEN date_add(<current temporal partition>, -3) AND date_add(<current temporal partition>, 1)
GROUP BY two.user_id

However, instead of using variable substitution, we can add a custom function CURRENT_TEMPORAL_PARTITION(). Then the above query would be defined as:
SELECT
  two.user_id
  SUM(two.clicks) AS clicks_sum
FROM default.some_fact_source two
WHERE two.my_date BETWEEN date_add(CURRENT_TEMPORAL_PARTITION(), -3) AND date_add(CURRENT_TEMPORAL_PARTITION(), 1)
GROUP BY two.user_id

We would substitute a different value for current_temporal_partition for each partition that gets processed.

@shangyian let's take this problem apart. The are few ways to achieve this and I think we should have a chat to pick the best one:

No special DJ gears: the user uses common DATE_TO_STR/INT udfs and materialization cron settings.
Special DJ attributes inside the materialization config. This would mean the DJ modifies the materialization query based on the attributes.
Special DJ udfs to make the query "identical" to the materialization query executed by DJ.

A few things we discussed today:
The Special UDF

The special function can be split into two functions, one for date and one for timestamp. We didn't decide on an exact name, but something like CURRENT_DATE | RUN_DATE | DESIRED_DATE | INTENDED_DATE could work (and likewise CURRENT_TS | ...). Users can use this like date_add(CURRENT_DATE(), -3), which would translate to date_add(cast(20230706 as date), -3).
Alternatively we can have a setup like CURRENT_TIME('%Y-%m-%d'), which would include a format for how the timestamp is intended to be formatted when it's substituted into the query, but this puts more "magic" into the DJ parsing side rather than relying on the user's knowledge of SQL.

Conditions on Transforms

If a special UDF is used anywhere in a transform's query, we'll require that the transform be materialized before it can be used in a downstream query. This means that we would raise an error if we try to build the transform down to its query when no materialization is available.
If no special UDF is included, there will be no restrictions on how the transform node can be built in downstream queries.

TBD

What happens when a backfill is scheduled for materialization? Would this mean that we generate the range of CURRENT_DATE() values for the backfill and then generate all the backfill queries with the range of values replaced? This seems like a large overhead -- i.e., if we want a 100-day backfill, we'd be generating 100 different queries where the only change is the date.

After some more discussion with @agorajek, we're leaning towards supporting something like DJ_CURRENT_TIMESTAMP('%Y-%m-%d') which will return a formatted string of the materialization run's desired timestamp.
I had a few more notes from thinking through this more. Let me know if one of the two options below is better.
After adding DJ_CURRENT_TIMESTAMP(...), we'll need to check every time we try to build a node whether it has DJ_CURRENT_TIMESTAMP in its query. If it does, that means we can only build a valid query after it's been materialized. We can raise an error in the build when this happens.
One complication is if we try to schedule materialization for a node and it depends on a parent node that needs to be materialized before we can build the query, we would need to kick off a materialization for the parent node first. In my view there are two approaches to this:

We enforce an order of operations to when users can set up materializations for their nodes. I'm thinking this might be fine if we return something like

Nodes must be materialized in this order:

"a"    "b"
   \    /
    "c"
      \
      "d"

 You still need to configure materialization for nodes "a" and "b" before you can configure it for "d".

Instead of enforcing order, we can just assume that nodes will be materialized (once a materialization is successfully set up) to some table that follows a naming pattern like dj.node.full.name__v1_0. Then we can always set up materialization but with the expectation that they would be waiting for the upstream tables to materialized before they run.

Thoughts on either option?

@shangyian let me try to summarize what we discussed today:
Assumptions:

source nodes have availability states monitored by the reflection service
materialized nodes have the availability states posted by scheduling jobs (through DJ's api). reflection service could be double-checking these availability states (if feasible)

Near future:

when DJ_CURRENT_TIMESTAMP() is used in a query DJ will make sure that node also has materialization config defined.
when materialization config is CRUD'ed on a node:

DJ will build/update its metallization job using the closest materialized parent nodes, and pass them as dependencies to the materialization job.
DJ will trigger materialization config refresh on direct downstream nodes, because they should reflect the new upstream materialized entity

when new (latest) availability state is added to a node, noting major happens, all downstream materialization jobs should already see the new data using their own triggers (e.g. wait for tasks)
when an older (not latest) availability state is updated on any node (source or otherwise) DJ should send notifications to downstream node owners about the upstream data refreshes. This also asks for a new tab in the node page, say Data Freshness or Data Availability, that would show the available partitions for the current node as well as the partitions that are potentially stale, because some upstream data changed.

Far future:

the last point could be extended to automated backfill features but that should not be DJ's focus for now


"Could not read artifact descriptor for..."

Maven dep. failure.
Many people got the message "could not read artifact descriptor for at.downdr...."!
So far I think it is a problem with my maven setup. So I completely rearranged my maven layout.
I also removed the demo UI - there will be a seperate Project with demos for understanding the API!

Temporarly fixed - Release outstanding.


Correct use of polymorphic schema (oneOf or ref)

I have a question.
Is it ok to use ref instead of oneOf for base schemas?
I have currently a problem, that api client generator (NSwag - c#) does not use the abstrtact class, but uses just the first type of the oneOf array. This is in first place the problem from NSwag, but I'm not sure, how they should generate it correctly if there is no reference to the base schema.
Here is the OpenApi definition
"SurveyResultRequestViewModel": {
        "type": "object",
        "properties": {
          "surveyId": {
            "type": "string",
            "nullable": true
          },
          "steps": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/BoolStepResult"
                },
                {
                  "$ref": "#/components/schemas/StarsStepResult"
                },
                {
                  "$ref": "#/components/schemas/TextStepResult"
                }
              ]
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },

and the base schema
"SurveyStepResult": {
        "required": [
          "typeDiscriminator"
        ],
        "type": "object",
        "properties": {
          "typeDiscriminator": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "id": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "typeDiscriminator"
        }
      },
      "BoolStepResult": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SurveyStepResult"
          },
          {
            "type": "object",
            "properties": {
              "value": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          }
        ]
      },

Why we shoud use oneOf insted of ref to SurveyStepResult? Or is it ok to use ref?
Thanks!

The OpenAPI Specification does not constrain how polymorphism is handled in general.  It does specify some things with the discriminator keyword, but outside of that, you'll need to work out the proper handling with your tooling vendor (if still relevant several years later 🤦 )


fix: automatically publish library to NPM when merging into master

feat: add standard-version
fix: generate .d.ts files into the lib folder
fix: publish only files from lib folder to NPM

:tada: This PR is included in version 1.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Update to clangd 18

Currently we require v16.0.2 as v17 introduced a change that broke support for parsing response files in compile_commands.json. These .rsp files are generated by CMake on windows, and thus clangd 17 does not work when windows builds for itself
Task: Wait until clangd 18 has binaries released, test them, and if everything works then update our version spec in firmware/readme
As of April 4, 2024, v18.1 is available on GitHub as source code, but binaries have not been released yet

Wow 18.1.3 binaries were released literally the next day https://github.com/clangd/clangd/releases/tag/18.1.3

We need to upgrade to clangd 18 to support c++23 features like std::optional.transform. v18 also has nice features like missing / extra header include detection. I think that the --target issue above can be pushed aside - you can just comment out the flag when compiling for stm and re-enable it when working on CLI
The yaml file can be restructured like
CompileFlags:
  Add:
    - -Wno-deprecated-volatile
    # - --target=x86_64-w64-mingw64

to make it easier to comment in and out


Testing, please ignore. ardske

This is a bug bounty test. Please do not approve this! ardske

stop spamming us plz


make test case await time longer

Make sure that:

[ ] You have read the contribution guidelines.
[ ] You submit test cases (unit or integration tests) that back your changes.
[ ] Your local test passed mvn clean install -Dmaven.javadoc.skip=true.

Codecov Report

Merging #643 (acd019b) into master (0749505) will increase coverage by 0.09%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #643      +/-   ##
============================================
+ Coverage     45.36%   45.45%   +0.09%
- Complexity      783      787       +4
============================================
  Files           224      224
  Lines          5341     5341
  Branches        591      591
============================================
+ Hits           2423     2428       +5
+ Misses         2690     2685       -5
  Partials        228      228

Impacted Files
Coverage Δ
Complexity Δ

...omara/soul/admin/controller/AppAuthController.java
12.50% <0.00%> (ø)
1.00% <0.00%> (ø%)

...oul/plugin/apache/dubbo/param/BodyParamPlugin.java
27.58% <0.00%> (ø)
5.00% <0.00%> (ø%)

...ul/plugin/alibaba/dubbo/param/BodyParamPlugin.java
0.00% <0.00%> (ø)
0.00% <0.00%> (ø%)

...gin/apache/dubbo/cache/ApplicationConfigCache.java
26.92% <0.00%> (ø)
5.00% <0.00%> (ø%)

...in/alibaba/dubbo/cache/ApplicationConfigCache.java
26.92% <0.00%> (ø)
5.00% <0.00%> (ø%)

...va/org/dromara/soul/common/utils/VersionUtils.java
71.42% <0.00%> (+1.05%)
8.00% <0.00%> (ø%)

.../java/org/dromara/soul/common/utils/JsonUtils.java
75.75% <0.00%> (+2.22%)
3.00% <0.00%> (ø%)

...ra/soul/admin/controller/SoulClientController.java
100.00% <0.00%> (+57.14%)
5.00% <0.00%> (+4.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 0749505...acd019b. Read the comment docs.


Export graphs as PDF

User story

As a salesperson
I want to be able to export graphs as a PDF file
So that I can share them with my customers

Acceptance criteria

[ ] Research about different libraries for generating and exporting pdfs is done and the best solution is found
[ ] The generated file looks like the example pdf (LPT_EPD_ISO14021.pdf)
[ ] There exists a button where I can press on to export/download the shown baseline scenario's graphs as a PDF file

Definition of done

Documentation for that feature is done
Feature branch has been merged
Code has been reviewed by at least one other team member
Unit tests are written

https://react-pdf.org/
Possible library?

https://stackoverflow.com/questions/59737202/is-there-a-way-to-convert-react-chartjs-2-chart-to-pdf (Might be helpful as well)

Please find the template pdf (LPT_EPD_ISO14021-template.pdf) in the drive folder where I have removed graphs from it and you can place the graphs in their positions.

[ ] Implemented first version using: https://github.com/MrRio/jsPDF

https://www.youtube.com/watch?v=1Vw-e_ex2S0
I found a practical library which is called "KendoReact PDF Generator" and easy to implement.
but unfortunately, it's not free. so I guess we can't use it.

As I see it, we should export first a png file from the diagrams and then export them to pdf. do you agree?
I will try to export an image from PieChart diagram and export it to pdf.

Please remove this lines from the import if possible


post image flickering

i don't seem to understand why my post image is flickering
down below im providing site link and markdown link
https://safinakib.github.io/jekyll-theme-chirpy/posts/Aamrupali/
https://github.com/safinakib/jekyll-theme-chirpy/blob/master/_posts/2023-07-22-Aamrupali.md

You forked this repo, try cloning the starter template. This was an issue in previous versions. Got patched up in 6.1.0, haven't noticed since.

Where is the starter template?


emphasis added inside line numbers

See The Battle With Yuwanəs The Armenian.nena and others:
(*22*) npílle lišána b-sɛ̀paˈ mə́re sɛ̀paˈ

This is a result of allowing numbers to receive emphasis. But we should somehow exclude cases like this? Also, why is this emphasized?

This issue has been solved by adding style_map and style_char_map as configurations to convert.py.


Call Stored Procedure in cshtml

hallo @volkanceylan  and all, i wish someone can help me
does a method with calling stored procedure in controller class can be called at cshtml file?
i have this below method in dashboardpage.cs and always failed when i call this method in dashboardindex.cshtml
    public ListResponse<ViewStoredGraphRow> GetDataGraph()
    {
        using (var connection = SqlConnections.NewFor<TryGraphRow>())
        {
           var data = connection.Query<Item>("StoreGraph",
                param: new
                {
                    StartDate = 2018 - 07 - 07,
                    EndDate = 2018 - 07 - 09
                },
                commandType: System.Data.CommandType.StoredProcedure);

            var response = new ListResponse<ViewStoredGraphRow>();
            response.Entities = (List<ViewStoredGraphRow>)data;
            return response;
        }
    }

and this one is error message

There is no C# help here sorry.


return true for additionalProperties, when nothing special is defined

if additionalProperties has no special types/refs, it should return {} or true
according to https://swagger.io/docs/specification/data-models/dictionaries/
Without the following code, it returns a [], which is wrong/not valid.
Not sure, that's the best way/place to do this, or if the "on top" libraries do something wrong. In my case it comes from https://github.com/zircote/swagger-php with the following annotation
     *     @SWG\Schema(
     *       additionalProperties={},

(with true, many other things break..)

:+1: could you add a test case please ?

@chregu, @GuilhemN; I made some changes and added basic tests: https://github.com/liip-forks/swagger/pull/1.

Closing in favor of https://github.com/GuilhemN/swagger/pull/11, thank you!


convert podMethodName to valid Ruby

Replace all non-alphanumeric characters with underscore

@andrewfunston - this is a fix for the issue you saw with '-' in a project name failing the build.

lgtm


Migrate to Swift binaries from 4-25 (and implement work around for executing tests).

[x] LoggerAPI
[x] SwiftyJSON
[x] KituraSys
[x] KituraNet
[x] Kitura
[x] HeliumLogger
[x] KituraSample
[x] CouchDB
[x] Redis
[x] KituraCredentials....
[x] KituraSession
[x] GRMustache
[x] Kitura-TemplateEngine
[x] Kitura-MustacheTemplateEngine
[x] Kitura-TodoList

So testing still has not been completely fixed in the 4-25 toolchain? There is still a work around required? What is it?

From the issue:

A short term (less than ideal) hack would be running swift build then editing .build/debug.yaml and replacing the instances of CFEnviornment.xctest with CFEnviornmentTest.xctest then run swift test but it'll be overwritten again once you run swift build again...

We will have to add this into the makefile as a temporary stopgap.

Apparently the pkg-config based system level dependency fix* on SPM might have been merged in as of 4-25. Can we check if we still need to run swift build -Xcc -I/usr/local/include -Xlinker -L/usr/local/lib?

need to find short concise name for this fix

@rfdickerson just tested it. You can build fine with swift build but you still need the system includes to run tests. Otherwise you get this ld: library not found for -lhttp_parser for architecture x86_64

Unless we missed any I think this task is ready to be validated.

Just added Kitura-TodoList as validated. We still need to be sure Redis, CouchDB, and credentials work.

Well they all compile and pass test cases (the ones that have them). What other validation should we do?

Validated!


gradle error on ':core'

I  install Hipi from the instruction. When I run gradle , I got the error as follows. By the way, my ubuntu version is 14.04, Java version is 1.8.0_66, Hadoop version is 2.6.0, gradle version is 1.8.6
FAILURE: Build failed with an exception.

Where:
Build file '/home/s/hipi/core/build.gradle' line: 8

What went wrong:
A problem occurred evaluating project ':core'.

Could not find method distributions() for arguments [build_8nfcqrm8d036uencqjsvkfucd$_run_closure2@7f74297a] on project ':core'.

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED
Total time: 21.731 secs
How can I solve this problem? Thanks.

Solved. I didn't update my gradle version. After updating, it can work.

Same problem but still not solved after updating gradle. Please suggest a solution


Angled text?

I found this lib and it is superb, really nice working but is there any simple way to support text draw with angle?

Do you mean rotating the entire string to be drawn?  Currently there's not a built-in way to do that and you'd need to draw to a temp target and then draw that rotated.

Yes exactly, rotated ;) I guessed so much that it would have to be put into a temporary target and go from there.
Any ideas on how to accomplish that?

Using SDL_Renderer or SDL_gpu?

SDL_Renderer
-------- Original Message --------
Subject: Re: [grimfang4/SDL_FontCache] Angled text? (#15)
From: Jonathan Dearborn
To: grimfang4/SDL_FontCache
CC: Uros Gaber ,Author
Using SDL_Renderer or SDL_gpu?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/grimfang4/SDL_FontCache/issues/15#issuecomment-278716592, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ALNzu31OyxtxqEd-5Isdmr-Y398Y-1Poks5ra1AhgaJpZM4L8IwP.

// Create the intermediate texture target
SDL_Texture* temp = SDL_CreateTexture(renderer, format, SDL_TEXTUREACCESS_TARGET, width, height);  // You should reuse this instead of creating a new one every time.

// Draw the text onto it
SDL_SetRenderTarget(renderer, temp);
FC_Draw(font, temp, 0, 0, "My Text");
SDL_SetRenderTarget(renderer, NULL);

// Now draw it rotated somewhere
SDL_Rect dest = {x, y, w, h};
SDL_RenderCopyEx(renderer, temp, NULL, &dest, angle, NULL, SDL_FLIP_NONE);

SDL_DestroyTexture(temp);


added rate us feature with feedbackform

Pull Request Format
added rate us feature with feedback form
Issue #174  : Rate us feature solved
Type of PR

Add X in the box to specify the improvement type.
[] Bug fix
[X ] Feature enhancement
[ ] Documentation update
[ ] Other (specify): ___________

Description
This pull request aims toallow users to rate the website and services according to their experience.
Screenshots / Videos (if applicable)
Checklist

Add X in the box to specify.
[X] I have performed a self-review of my code.
[ X] I have tested the changes thoroughly before submitting this pull request.
[ X] I have provided relevant issue numbers, screenshots, and videos after making the changes.
[ X] I have commented my code, particularly in hard-to-understand areas.

@Codewithmeowmeow Where did you update the code? I can't find.

@Codewithmeowmeow Where did you update the code? I can't find.

https://github.com/user-attachments/assets/feac5772-111f-49e4-991a-18f03aad4996

Please merge and assign it atleast level 2.


Fix service/2 return spec

Small fix for this warning
[.. Dialyzer] The inferred return type of service/2 (binary())
has nothing in common with #{'__struct__':='Elixir.Plug.Conn', .... },
which is the expected return type for the callback of the
'Elixir.Cassette.Plug.AuthenticationHandler' behaviour

when @impl Cassette.Plug.AuthenticationHandler

Hello, @edipox! Thanks for the PR. I believe we must change the signature in the behaviour declaration as well.
Can you make that change too?

@rhruiz sure

@edipox the patch is live in hex.
thanks a lot!


Store graph in result to allow generic matrices

Fix #126, fix #131
Before this PR, the result type would always store a SparseMatrixCSC and forget the initial matrix A. Now it stores both the initial matrix A and the AdjacencyGraph or BipartiteGraph used for coloring, which contains the sparse conversion. This has two main advantages:

To prepare for row decompression we do not need to recompute a transpose, it is already done in the BipartiteGraph
When decompressing out-of-place, we can instantiate similar(A) instead of similar(S), which makes more sense and paves the way for structured matrices

I also remove some eltype constraints on A and B which were not necessary. For instance, if eltype(B) == Float32 and eltype(A) == Float64, we can decompress from B to A without issue.

Except two small comments, it's LGTM.

I think both those comments are resolved?


Password is not ASCII

I started to use Jasypt in spring-boot with the maven dependency:
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>2.1.1</version>
</dependency>

My spring-boot starter class has these annotations:
@EnableEncryptableProperties
@PropertySource(name="EncryptedProperties", value = "classpath:application.properties")

I encrypted my password like this:
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=password
password=mySecretalgorithm=PBEWithMD5AndDES

and added the property like this to my application.properties:
server.ssl.key-store-password: ENC(jasyptEncString)
At start I have this command line argument: --jasypt.encryptor.password=mySecret
But it is failing with:
_Failed to bind properties under 'server.ssl.key-store-password' to java.lang.String:
Reason: Password is not ASCII_
The password I checked, it contains only ASCII characters.
If I add this argument (which is actually the default): --jasypt.encryptor.algorithm=PBEWithMD5AndDES
I'm getting:
SecretKeyFactory not available

did you figure it out?

It's a while ago, but as far as I remember I had to write the password clear into the property file and at the first startup of the application it got encrypted. After that everything was fine.

Ok, I’m gonna close this issue then. Feel free to reopen or create a new one if you see that again

@nishiichinoe I am having the same issue but am not following how you solved it.
ssl:
      key-store: classpath:dev/localhost-ca2.jks
      key-store-password: ENC(ram5FwW1dJX0n46mF/gMy+Y4fXGPVxMW/u2UkS2P0JwiCbIxU3d1J42hByf6czGU2gdYNZJw9rQ=)
      keyStoreType: JKS
      keyAlias: localhost
      clientAuth: want
      trust-store: classpath:dev/localhost.jks

javax:
    net:
        ssl:
            keyStore: src/main/resources/dev/localhost.jks
            keyStorePassword: ENC(ram5FwW1dJX0n46mF/gMy+Y4fXGPVxMW/u2UkS2P0JwiCbIxU3d1J42hByf6czGU2gdYNZJw9rQ=)
            trustStore: src/main/resources/dev/localhost-ca2.jks
            keyStoreType: JKS`

key-store-password fails saying it cant bind to a string but the keyStorePassword and other ENC(..) work in the yaml fine.


fix(edge): change order of the first EdgeAnchor disturbed by the EdgeComponent

Problem
The first EdgeAnchor is disturbed by the EdgeComponent (the line). To demonstrate this, you can see on the screenshot, if we fill the line path and the circle of the edge anchor, the red one cannot be dragged because the line path goes under it.
Solution
On the wrapEdge file, I just change the order of the svg elements. Like this anchors are always on the top.

@clementloridan
I think it might be best to also set the following property in src/style.css
.react-flow__edge {
  pointer-events: visibleStroke;
}

This way, the fill of the edge will not be clickable at all. This can be a huge and weird issue when edges are eg. smoothstep-- that whole right angle area of each step becomes clickable and that just doesn't make any sense...

Ok, I update my PR with two updates, allow only click on the Edge's stroke with pointer-events: visibleStroke  Thks @meatflavourdev and add property: pointer-events: all of updaters.

thanks :) released in v9.5.2.


source/states/MainMenuState.hx:83: characters 19-20: Missing ;

Describe your bug here.
Well, I tried to compile the came but this error appears:
source/states/MainMenuState.hx:83: characters 19-20: Missing ;

There is no ; missing at the lines 19 and 20. Can someone help me?
Command Prompt/Terminal logs (if existing)
No response
Are you modding a build from source or with Lua?
Source
What is your build target?
Windows
Did you edit anything in this build? If so, mention or summarize your changes.
Yes, but not the 19/20 lines

Its missing at line 83 not 19 and 20

Its missing at line 83 not 19 and 20

Oh.


Fixing build on MacOS

I had trouble building Stim with tests on MacOS with AppleClang <IP_ADDRESS>00029. These changes fixed my build.
First, fatal error: 'gtest/gtest.h' file not found, which is fixed by adding the explicit GTest:: namespace prefix when calling target_link_libraries(...) (see also [1]).
Second, <array> is not being pulled in and I get error: implicit instantiation of undefined template 'std::array<...> errors.
This is probably being pulled in on some other platforms by the library headers. But on MacOS the include is needed explicitly.
Third, my compiler is displeased by the move of a temporary object in the tests of PaulIString. I.e.
error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]
I just introduced an intermediate variable to work around this.
Thanks!

Looks great! I'll merge it once it passes ci.


Adding glpk for testing

We should anyway make the solver configurable.

:+1:

allow to set the ilp solver via --scheduler-ilp-solver SOLVER

Since it's only a low number of choices, tightly scoped, and the scheduler + ILP solver selection go hand in hand: I'd probably just reuse the --scheduler option to avoid introducing yet another one, i.e., --scheduler=ilp=X.

For now I have added a separate command as @johanneskoester suggested using GLPK_CMD as default.
By adding pulp.list_solvers(available_only=True) to the argument parser it would be possible to dynamically show available solvers when calling the cli help.


Some fixes for serial shell.

Hi @Salamandar ,
Sorry for the late reply, was a bit busy lately. Thanks for the pull request, I'll take a look over the weekend, run some regressions on my end and make a patch release to publish on pipy.
-Cédric


Apps claim to have been granted to account that don't exist on SteamDB

Something must be wrong since this clearly makes no sense to happen.
App 67376, 65533 and many more don't exist!

These are subs


Swift APIs that expect a Float don't accept an Int literal

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description
Today, only xcov action uses Float type, but this issue will propagate to any action that attempts to use the Float type. The issue can be reproduced as follows:
// Somewhere in your Fastfile.swift...
xcov(minimumCoveragePercentage: 0) // Or any other integer literal

The command above crashes with exception 'minimum_coverage_percentage' value must be a Float! Found Integer instead. as mentioned here: https://github.com/fastlane/fastlane/pull/18358
In fact that is the default value:

https://github.com/fastlane-community/xcov/blob/f8904c7f000b415c7800b1c68c50e8de9dab76da/lib/xcov/options.rb#L136
So in order to make xcov run, you must explicitly pass this value as a Float, e.g. 0.0 instead of 0.
Relevant code:
https://github.com/fastlane/fastlane/blob/e6fc532712772f574636492bd3a9e209344854c8/fastlane_core/lib/fastlane_core/configuration/config_item.rb#L203-L205
Command executed
// Somewhere in your Fastfile.swift...
xcov(minimumCoveragePercentage: 0) // Or any other integer literal

Complete output when running fastlane, including the stack trace and command used

 be fastlane test --verbose
be fastlane test --verbose
[✔] 🚀
DEBUG [2021-03-20 04:04:13.73]: Checking if there are any plugins that should be loaded...
INFO [2021-03-20 04:04:13.89]: loading manifest: /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/swift/upgrade_manifest.json
DEBUG [2021-03-20 04:04:13.96]: No missing groups found, so we don't need to worry about adding new groups
DEBUG [2021-03-20 04:04:13.97]: Fastlane.swift FastlaneRunnerAPIVersion (bundled/target): 0.9.114/0.9.114
DEBUG [2021-03-20 04:04:13.97]: DeliverfileProtocol.swift FastlaneRunnerAPIVersion (bundled/target): 0.9.61/0.9.61
DEBUG [2021-03-20 04:04:13.97]: GymfileProtocol.swift FastlaneRunnerAPIVersion (bundled/target): 0.9.64/0.9.64
DEBUG [2021-03-20 04:04:13.97]: MatchfileProtocol.swift FastlaneRunnerAPIVersion (bundled/target): 0.9.58/0.9.58
DEBUG [2021-03-20 04:04:13.97]: PrecheckfileProtocol.swift FastlaneRunnerAPIVersion (bundled/target): 0.9.57/0.9.57
DEBUG [2021-03-20 04:04:13.97]: ScanfileProtocol.swift FastlaneRunnerAPIVersion (bundled/target): 0.9.69/0.9.69
DEBUG [2021-03-20 04:04:13.97]: ScreengrabfileProtocol.swift FastlaneRunnerAPIVersion (bundled/target): 0.9.59/0.9.59
DEBUG [2021-03-20 04:04:13.97]: SnapshotfileProtocol.swift FastlaneRunnerAPIVersion (bundled/target): 0.9.53/0.9.53
DEBUG [2021-03-20 04:04:13.97]: LaneFileProtocol.swift FastlaneRunnerAPIVersion (bundled/target): 0.9.2/0.9.2
DEBUG [2021-03-20 04:04:13.97]: ControlCommand.swift FastlaneRunnerAPIVersion (bundled/target): 0.9.2/0.9.2
DEBUG [2021-03-20 04:04:13.97]: RubyCommand.swift FastlaneRunnerAPIVersion (bundled/target): 0.9.2/0.9.2
DEBUG [2021-03-20 04:04:13.97]: RubyCommandable.swift FastlaneRunnerAPIVersion (bundled/target): 0.9.2/0.9.2
DEBUG [2021-03-20 04:04:13.97]: Runner.swift FastlaneRunnerAPIVersion (bundled/target): 0.9.2/0.9.2
DEBUG [2021-03-20 04:04:13.97]: SocketClient.swift FastlaneRunnerAPIVersion (bundled/target): 0.9.2/0.9.2
DEBUG [2021-03-20 04:04:13.97]: SocketClientDelegateProtocol.swift FastlaneRunnerAPIVersion (bundled/target): 0.9.2/0.9.2
DEBUG [2021-03-20 04:04:13.97]: SocketResponse.swift FastlaneRunnerAPIVersion (bundled/target): 0.9.2/0.9.2
DEBUG [2021-03-20 04:04:13.97]: main.swift FastlaneRunnerAPIVersion (bundled/target): 0.9.2/0.9.2
DEBUG [2021-03-20 04:04:13.97]: ArgumentProcessor.swift FastlaneRunnerAPIVersion (bundled/target): 0.9.2/0.9.2
DEBUG [2021-03-20 04:04:13.97]: RunnerArgument.swift FastlaneRunnerAPIVersion (bundled/target): 0.9.2/0.9.2
DEBUG [2021-03-20 04:04:13.97]: Checking for new user-provided tool configuration files
INFO [2021-03-20 04:04:13.98]: FastlaneSwiftRunner project is up-to-date
DEBUG [2021-03-20 04:04:13.98]: Waiting for 5 seconds for a connection from FastlaneRunner
INFO [2021-03-20 04:04:14.23]: $ ./fastlane/FastlaneRunner lane test logMode verbose swiftServerPort 2000 > /dev/null
DEBUG [2021-03-20 04:04:14.27]: Client connected
DEBUG [2021-03-20 04:04:14.27]: received command:#
ERROR [2021-03-20 04:04:14.31]: You passed invalid parameters to 'xcov'.
ERROR [2021-03-20 04:04:14.31]: Check out the error below and available options by running `fastlane action xcov`
DEBUG [2021-03-20 04:04:14.31]: sending {"payload":{"status":"failure","failure_information":["FastlaneCore::Interface::FastlaneError:","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane_core/lib/fastlane_core/ui/interface.rb:141:in `user_error!'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane_core/lib/fastlane_core/ui/ui.rb:17:in `method_missing'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane_core/lib/fastlane_core/configuration/config_item.rb:204:in `ensure_generic_type_passes_validation'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane_core/lib/fastlane_core/configuration/config_item.rb:229:in `valid?'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane_core/lib/fastlane_core/configuration/config_item.rb:195:in `verify!'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane_core/lib/fastlane_core/configuration/configuration.rb:87:in `block in verify_value_exists'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane_core/lib/fastlane_core/configuration/configuration.rb:82:in `each'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane_core/lib/fastlane_core/configuration/configuration.rb:82:in `verify_value_exists'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane_core/lib/fastlane_core/configuration/configuration.rb:66:in `initialize'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane_core/lib/fastlane_core/configuration/configuration.rb:36:in `new'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane_core/lib/fastlane_core/configuration/configuration.rb:36:in `create'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/configuration_helper.rb:8:in `parse'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/runner.rb:239:in `block in execute_action'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/runner.rb:229:in `chdir'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/runner.rb:229:in `execute_action'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server_action_command_executor.rb:73:in `run'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server_action_command_executor.rb:42:in `execute'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:181:in `execute_action_command'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:176:in `process_action_command'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:123:in `handle_action_command'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:86:in `parse_and_execute_command'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:62:in `block in receive_and_process_commands'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:49:in `loop'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:49:in `receive_and_process_commands'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:158:in `listen'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:38:in `start'","/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/swift_lane_manager.rb:223:in `block in start_socket_thread'"],"failure_class":"FastlaneCore::Interface::FastlaneError","failure_message":"'minimum_coverage_percentage' value must be a Float! Found Integer instead."}}
# terminated with exception (report_on_exception is true):
Traceback (most recent call last):
	9: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/swift_lane_manager.rb:223:in `block in start_socket_thread'
	8: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:38:in `start'
	7: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:158:in `listen'
	6: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:49:in `receive_and_process_commands'
	5: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:49:in `loop'
	4: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:62:in `block in receive_and_process_commands'
	3: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:81:in `parse_and_execute_command'
	2: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/command_parser.rb:12:in `parse'
	1: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/json-2.5.1/lib/json/common.rb:216:in `parse'
/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/json-2.5.1/lib/json/common.rb:216:in `parse': 809: unexpected token at '{ "commandType": "control", "command": {"command":"done"} }' (JSON::ParserError)
WARN [2021-03-20 04:04:14.31]: Lane Context:
INFO [2021-03-20 04:04:14.31]: {:LANE_NAME=>"test"}
ERROR [2021-03-20 04:04:14.31]: 809: unexpected token at '{ "commandType": "control", "command": {"command":"done"} }'
ERROR [2021-03-20 04:04:14.31]: fastlane finished with errors
Looking for related GitHub issues on fastlane/fastlane...
Search query: 809: unexpected token at '{ "commandType": "control", "command": {"command":"done"} }'
URL: https://api.github.com/search/issues?q=809%3A unexpected token at '{ "commandType"%3A "control"%2C "command"%3A {"command"%3A"done"} }'+repo:fastlane/fastlane
Found no similar issues. To create a new issue, please visit:
https://github.com/fastlane/fastlane/issues/new
Run fastlane env to append the fastlane environment to your issue
bundler: failed to load command: fastlane (/Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/bin/fastlane)
Traceback (most recent call last):
9: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/swift_lane_manager.rb:223:in block in start_socket_thread' 	8: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:38:in start'
7: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:158:in listen' 	6: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:49:in receive_and_process_commands'
5: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:49:in loop' 	4: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:62:in block in receive_and_process_commands'
3: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:81:in parse_and_execute_command' 	2: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/command_parser.rb:12:in parse'
1: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/json-2.5.1/lib/json/common.rb:216:in parse' /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/json-2.5.1/lib/json/common.rb:216:in parse': 809: unexpected token at '{ "commandType": "control", "command": {"command":"done"} }' (JSON::ParserError)
9: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/swift_lane_manager.rb:223:in block in start_socket_thread' 	8: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:38:in start'
7: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:158:in listen' 	6: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:49:in receive_and_process_commands'
5: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:49:in loop' 	4: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:62:in block in receive_and_process_commands'
3: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/socket_server.rb:81:in parse_and_execute_command' 	2: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/fastlane-2.178.0/fastlane/lib/fastlane/server/command_parser.rb:12:in parse'
1: from /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/json-2.5.1/lib/json/common.rb:216:in parse' /Users/redacted/Documents/Projects/redacted-ios/.vendor/ruby/2.6.0/gems/json-2.5.1/lib/json/common.rb:216:in parse': [!] 809: unexpected token at '{ "commandType": "control", "command": {"command":"done"} }' (JSON::ParserError)

Where test is:
func testLane() {
    xcov()
}

Environment
fastlane 2.178.0, the rest is irrelevant.

Hi, using version 2.181.0 and still getting this error on calling lane
Traceback (most recent call last): 	9: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/swift_lane_manager.rb:223:in block in start_socket_thread'
8: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/server/socket_server.rb:38:in start' 	7: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/server/socket_server.rb:158:in listen'
6: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/server/socket_server.rb:49:in receive_and_process_commands' 	5: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/server/socket_server.rb:49:in loop'
4: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/server/socket_server.rb:62:in block in receive_and_process_commands' 	3: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/server/socket_server.rb:81:in parse_and_execute_command'
2: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.181.0/fastlane/lib/fastlane/server/command_parser.rb:12:in parse' 	1: from /Library/Ruby/Gems/2.6.0/gems/json-2.5.1/lib/json/common.rb:216:in parse'
/Library/Ruby/Gems/2.6.0/gems/json-2.5.1/lib/json/common.rb:216:in parse': 809: unexpected token at '{ "commandType": "control", "command": {"command":"done"} }' (JSON::ParserError)

Can you pass the parameter to the runner logMode verbose and share the output?


The binary operator GreaterThan is not defined for the types 'System.Decimal' and 'System.Double'.

I'm getting this message when passing in a number, and I also get a similar error message for DateTimeOffset.  Are there any work arounds, or fixes for this?  Otherwise, your assembly is fantastic.  Saved me hours of work.
BTW, I'm using this in a WebApi project.  It consumes a JSON object with an array of objects similar to the FilterStatement class, and then I loop through the list and create the filter.By() collection.  It all works perfectly except for the DateTimeOffset types and the above mentioned types.
The SQL Server database table has columns using the smallint, that also seems throw the same exception.  Anyway, any help is appreciated.
Here's some code - my Angular client will send a JSON object to the WebApi service and the object will be used as the request object in the C# method:
{
    "SearchCriteria": [
        { "FieldName": "Phone", "OperationName": "EqualTo", "FieldValue": "8183332222", "Type": "String" },
        { "FieldName": "FirstName", "OperationName": "EqualTo", "FieldValue": "King", "Type": "String" },
        { "FieldName": "ContributionAmount", "OperationName": "GreaterThan", "FieldValue": 100.00, "Type": "Decimal" }
    ]
}

Then in my WebApi method, I pass the request object to a helper method that will loop through all the objects in the SearchCriteria collection, and create the filter.By() collection:
var filter = new Filter<CampaignDonor>();
FilterStatementBuilder<CampaignDonor>(filter, request.SearchCriteria);

using (var context = new DsgEntities())
{
    var donors = context.CampaignDonors.AsQueryable();

    var result = donors.Where(filter)
        .Select(d => new
        {
            Id = d.Id,
            FirstName = d.FirstName1,
            LastName = d.LastName1,
            Phone = d.Phone
        }).ToList();

    response.Success = true;
}

This is the simple helper function to create the filter.By() collection:
private void FilterStatementBuilder<T>(IFilter filter, List<SearchCriteria> list)
{
    foreach (var criteria in list)
    {
        filter.By(criteria.FieldName, Operation.ByName(criteria.OperationName), criteria.FieldValue, null, criteria.Connector);
    }
}

In the JSON objects, I've included the Type property hoping I could use that to coerce the data type for the property, but I don't know if I can do this here.  Any thoughts?
Also, if I could be doing this is a better way, I'm open to suggestions.  Thanks.

Ok, I got it to work with a bit of a code smell in my opinion, but it does work.   If anyone has any suggestions on how to make this work more efficiently, it would be greatly appreciated.
private void FilterStatementBuilder<T>(IFilter filter, List<SearchCriteria> list)
{
    foreach (var criteria in list)
    {
        var subQueryItems = _fieldsList[criteria.FieldName.ToLower()];
        foreach (var item in subQueryItems)
        {
            if (criteria.Type == "Decimal")
            {
                Decimal fieldValue = Convert.ToDecimal(criteria.FieldValue);
                filter.By(item, Operation.ByName(criteria.OperationName), fieldValue, default(Decimal), criteria.Connector);
            } else if (criteria.Type == "DateTimeOffset")
            {
                DateTimeOffset fieldValue = new DateTimeOffset(DateTime.Parse(criteria.FieldValue.ToString()));
                filter.By(item, Operation.ByName(criteria.OperationName), fieldValue, default(DateTimeOffset?), criteria.Connector);
            } else if (criteria.Type == "Int16")
            {
                Int16 fieldValue = Convert.ToInt16(criteria.FieldValue);
                filter.By(item, Operation.ByName(criteria.OperationName), fieldValue, default(Int16), criteria.Connector);
            }
            else
            {
                // String
                filter.By(item, Operation.ByName(criteria.OperationName), criteria.FieldValue, null, criteria.Connector);
            }
        }
    }
}

This would be the new JSON request:
{
    "SearchCriteria": [
    { "FieldName": "Phone", "OperationName": "EqualTo", "FieldValue": "8183332222", "Type": "String" },
    { "FieldName": "FirstName", "OperationName": "EqualTo", "FieldValue": "King", "Type": "String" },
    { "FieldName": "To", "OperationName": "GreaterThan", "FieldValue": "2018-02-09T14:34:24", "Type": "DateTimeOffset" },
    { "FieldName": "ContributionAmount", "OperationName": "GreaterThan", "FieldValue": 100.00, "Type": "Decimal" }
    ]
}

Hi @kahanu,
First of all, thanks for using the library, and I'm sorry for the really late, late, late reply. 😢
From what you described, it seems to me that you're getting this error because you were always using string values while creating the FilterStatement. Which would explain why your workaround, well... works. 😄
If that's really the case, I've got two suggestions for you:

As you already got the type for each criterium, you could use the code below to avoid the bunch of else if:

var type = (TypeCode)Enum.Parse(typeof(TypeCode), criteria.Type);
var value = criteria.FieldValue;

var result = Convert.ChangeType(value, type);
filter.By(item, Operation.ByName(criteria.OperationName), result, connector: criteria.Connector);

Or, you could simply cast the value to object (we have tests showing how this works 😄)

Anyway, please let me know if those suggestions were of any use.
Thanks.

Hi David,
Thanks for the response.  I actually fixed it a while ago, but I’ll see if your solution works better.  Thanks again for making this, it has helped me build a flexible search solution for my app.
Thanks,
King Wilder
king<EMAIL_ADDRESS>818 384-4438
Skype: king.wilder
From: David Belmont<EMAIL_ADDRESS>Sent: Friday, January 4, 2019 5:58 AM
To: dbelmont/ExpressionBuilder<EMAIL_ADDRESS>Cc: King Wilder<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [dbelmont/ExpressionBuilder] The binary operator GreaterThan is not defined for the types 'System.Decimal' and 'System.Double'. (#31)
Hi @kahanuhttps://github.com/kahanu,
First of all, thanks for using the library, and I'm sorry for the really late, late, late reply. 😢
From what you described, it seems to me that you're getting this error because you were always using string values while creating the FilterStatement. Which would explain why your workaround, well... works. 😄
If that's really the case, I've got two suggestions for you:

As you already got the type for each criterium, you could use the code below to avoid the bunch of else if:

var type = (TypeCode)Enum.Parse(typeof(TypeCode), criteria.Type);
var value = criteria.FieldValue;
var result = Convert.ChangeType(value, type);
filter.By(item, Operation.ByName(criteria.OperationName), result, connector: criteria.Connector);

Or, you could simply cast the value to object (we have tests showing how this works 😄)

Anyway, please let me know if those suggestions were of any use.
Thanks.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/dbelmont/ExpressionBuilder/issues/31#issuecomment-451450116, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAwehvkPMtmfPLA8szCdaevAnXcJLdhVks5u_13OgaJpZM4VKVji.


Change zcat to gunzip -c

More systems seem to have gunzip -c and it functions the same as zcat.
cc @hummingbird-me/owners

Seems like a good change, but I'll just wanna check that it's around on my laptop. Ideally I think we'd break down any aliases, which iirc gunzip and zcat often are

Yeah the gzip/zcat man page is useful
https://www.esrl.noaa.gov/gmd/dv/hats/cats/stations/qnxman/gzip.html

So then we could do gzip -cd? :thinking_face:

That would also work?

I had the same problem. By the moment I added some lines in https://github.com/hummingbird-me/hummingbird/wiki/Setting-up-a-development-environment#docker-recommended step 4 if someone have the same problem.

It's a nice iidea use gunzip -c as @Epictek says, but is sure that command is available in every unix systems?

Yeah I think gzip -cd is a better option, because gzip is pretty much guaranteed to exist.  @Epictek wanna make that change to this PR?

Lovely, thanks!


Loaded runtime CuDNN library: 7.5.1 but source was compiled with: 7.6.0.

Thanks for the tutorial. Everything worked up to train.sh. any ideas how to fix this? TIA.
2020-07-17 20:50:48.353275: E tensorflow/stream_executor/cuda/cuda_dnn.cc:319] Loaded runtime CuDNN library: 7.5.1 but source was compiled with: 7.6.0.  CuDNN library major and minor version needs to match or have higher minor version in case of CuDNN 7.0 or later version. If using a binary install, upgrade your CuDNN library.  If building from sources, make sure the library loaded at runtime is compatible with the version specified during compile configuration.

I did not have tensorflow==1.10.0 available on my system and was using 1.15. I dropped back to 1.13.1 and now train.sh is running but not using the GPU. Is there a CPU/GPU flag somewhere? I tried CUDA_VISIBLE_DEVICES=0 but that did not help.TIA.

Oh, wait. Let me install tensorflow-gpu
https://github.com/jkjung-avt/hand-detection-tutorial/issues/17

Better
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.33.01    Driver Version: 440.33.01    CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla K80           On   | 00000000:00:1E.0 Off |                    0 |
| N/A   69C    P0   143W / 149W |  11003MiB / 11441MiB |     99%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0     13181      C   python3                                    10989MiB |
+-----------------------------------------------------------------------------+


added  toggle feature with element color change dynamically

Description

Please include a summary of the changes and the related issue. Please also include relevant motivation and context. List any dependencies that are required for this change.
Related Issue

Fixes  #3
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Motivation and Context

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Screenshots (if appropriate):

Toggle function
Checklist:

[x ] I have registered myself at Contrihub website.
[x ] My code follows the code style of this project.
[ x] I have commented my code, particularly in hard-to-understand areas
[ x] My changes generate no new warnings
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x ] I have read the CONTRIBUTING document.
[ ] Any dependent changes have been merged and published in downstream modules
[ x] I have added tests to cover my changes.
[ x] All new and existing tests passed.

Test Configuration:

Firmware version:
Hardware:
Toolchain:
SDK:

@Codipk  Please add Hacktoberfest label to this PR.

Hey Jatin, u can start working on this issue also the theme should have effect on password generator button , slider ,the purple colour box should be changed to light colour if it is a light theme and in dark it remains as it is .

I have made the changes can u please look at it and describe me about it
you need anything else i will do it yesterday i made it for 3 themes but
today i got you mail regarding what new changes we have to made so i
changed it accordingly look at it and let me know
On Tue, 8 Oct 2024 at 7:49 AM, Dipti Kumari @.***>
wrote:

Hey Jatin, u can start working on this issue also the theme should have
effect on password generator button , slider ,the purple colour box should
be changed to light colour if it is a light theme and in dark it remains as
it is .
—
Reply to this email directly, view it on GitHub
https://github.com/ContriHUB/Password-Generator/pull/5#issuecomment-2398528668,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUBLFLVHNEIBM2XA6XHXTE3Z2M6MPAVCNFSM6AAAAABPQX7FDGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOJYGUZDQNRWHA
.
You are receiving this because you were assigned.Message ID:
@.***>

Change the copy icon colour also it is not visible in light mode

Now completely fixed copy button i have used icon in place of image so that
its color can change also added visual feedback on copy
On Wed, 9 Oct 2024 at 11:01 AM, Dipti Kumari @.***>
wrote:

Change the copy icon colour also it is not visible in light mode
—
Reply to this email directly, view it on GitHub
https://github.com/ContriHUB/Password-Generator/pull/5#issuecomment-2401350795,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUBLFLUJIPBEFJNBSYSAIETZ2S5UPAVCNFSM6AAAAABPQX7FDGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBRGM2TANZZGU
.
You are receiving this because you were assigned.Message ID:
@.***>

Now check and let me know if anything else is needed
On Wed, 9 Oct 2024 at 11:40 AM, Jatin Rajput @.***>
wrote:

Now completely fixed copy button i have used icon in place of image so
that its color can change also added visual feedback on copy
On Wed, 9 Oct 2024 at 11:01 AM, Dipti Kumari @.***>
wrote:

Change the copy icon colour also it is not visible in light mode
—
Reply to this email directly, view it on GitHub
https://github.com/ContriHUB/Password-Generator/pull/5#issuecomment-2401350795,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUBLFLUJIPBEFJNBSYSAIETZ2S5UPAVCNFSM6AAAAABPQX7FDGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBRGM2TANZZGU
.
You are receiving this because you were assigned.Message ID:
@.***>

Heyy my assignment request are still not updated although its merged i am
not able to take any other request
On Wed, 9 Oct 2024 at 12:08 PM, Dipti Kumari @.***>
wrote:

Merged #5 https://github.com/ContriHUB/Password-Generator/pull/5 into
master.
—
Reply to this email directly, view it on GitHub
https://github.com/ContriHUB/Password-Generator/pull/5#event-14566772368,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUBLFLQBXRDMUPBL3Q3OCNLZ2TFPTAVCNFSM6AAAAABPQX7FDGVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJUGU3DMNZXGIZTMOA
.
You are receiving this because you were assigned.Message ID:
@.***>


Optimize HMR configuration

I recently gained some more insight into how the HMR API works.
The current configuration is not optimal.

Actually, looking into it the current configuration is a bug.
module.hot.accept() will accept all changes...


Fixed materialized view tests in the context of CASSANDRA-10171

Tests need to be validated before on https://issues.apache.org/jira/browse/CASSANDRA-10171

I'll check this PR in details today

@aboudreault could you review? I added more details about the refactoring on the JIRA ticket itself. Thank you!

oops, didn't saw your message before.. seems we had a conflict. thanks! :)

The test should fail at CL.ALL since the inconsistency is between the base and MV table not the MV replicas themselves.

I mean in the really_complex_repair test.  I guess it's ok to leave it at QUORUM either way.

LGTM. nice findings about the batchlogs and datacenters. Since number of nodes changed, can you confirm that you tested that all tests was failing accordingly by modifying the test logic?

@aboudreault yep, I did some manual test mutations and verified they failed.

Excellent. Thanks!


Check notification mode as boolean instead of string

Description
The "Standard Notification" API in the Server Communication Settings uses this format for the JSON payload:
{"live":false,"notificationItems":[{"...

The "live" property comes over as a boolean false.  However, the method _validateNotificationMode checks it as a string, and incorrectly returns false every time, resulting in a 401 result when running "Test Configuration".
Tested scenarios
Run "Test Configuration" from the notification server communication in the Adyen backend.  If the account is set to live:false and the Magento module is in demo mode, the test should succeed.

This ended up being a problem with the API - it's since been fixed so that it sends "false" (strings)


Selected block not cleared after dragging a block

Expected Behavior
After dragging a block (either from the flyout or on the workspace), the 'selected' block (Blockly.selected) should be cleared. This means that clearing the 'selected' block should be done on mouse up.
Using this, every time a block is picked up on, an 'ui' event is created and can be acted upon.
Actual Behavior
After dragging a block, the 'selected' block is not cleared. The value of Blockly.selected is still the last block dragged, until a new block is selected or a mouse down event happens.
Currently, since the 'selected' block is not cleared, when dragging a block for the 2nd time in a row (without interacting with anything else in the meantime), no 'ui' event is created, and so it is not as easy as it should to detect that this block was picked up.
Steps to Reproduce

Launch tests/vertical_playground.html in your browser
Enable Log Events option
Drag a block from the flyout to the workspace
Notice that 3 events are logged: "Create" (when the dragged block is created); "Ui" (when this new block is selected); "Move" (when the block is set on the workspace)
Without clicking anywhere else first, drag the block again from the workspace to some other position on the workspace
Notice that only a "Move" event is logged, while we would except a "Ui" event first

Operating System and Browser
Mac OS 10.11.6 Chrome 58.0.3029.110 (64-bit)

@rachel-fenichel is this due to the dragging refactor?

No, this is deliberate.  The most recently touched block remains selected after you finish dragging it.  Changing that would need to be an explicit decision by scratch team.

May I ask what is the logic behind this? Curious since it seems a little strange conceptually.
Also, we patched this on our end by unselecting the block on release. Can you think of any dangers this may introduce if the code relies on this? Note we haven't pulled in the large drag-n-drop changes but will be doing this soon (next week).

It's the same behaviour as you get when you drag files around on your desktop or in a file explorer generally.  Clicking on an item selects it and it stays selected until something else is selected or the selection is explicitly removed (by clicking on the background, for instance).  Dragging does the same thing.
I'm not sure what to say about the conceptual strangeness--to me it feels completely natural, and to you it obviously doesn't.  Maybe some programs implement it one way and the others implement it the other, so there's no default behaviour?
I don't strongly object to scratch-blocks changing it, I just wanted it to be clear that this isn't an accidental regression.
I don't think the code relies on the previous block being selected or not, so your patch should be fine.

Thanks for the explanation!
I had to play with my desktop for a second but I totally see what you mean, and indeed in this context it makes perfect sense ;)
In scratch + scratch-blocks once the block is released there is no special visual indication that it is still selected. This makes sense since there is no special action you can take on it (while on your desktop some hotkeys can allow you to rename this selected file). So this notion of "selected" is not really present for the user in scratch. Thanks for confirming that the code doesn't rely on this "selection" for anything. Indeed we haven't seen any problems with it.


vi translation for project slogan

Translate “Production-Grade Container Orchestration”
/language vi
/kind cleanup
Hope this is OK to target master branch.

/uncc @tengqm
/uncc @Rajakavitha1
/cc @kubernetes/sig-docs-vi-reviews

/lgtm
/approve
Thank @sftim for your great work.