TypeError: Cannot read property 'properties' of null

TypeError: Cannot read property 'properties' of null
    at annotation.types.reduce (/Users/brunolemos/Projects/devhub/node_modules/eslint-plugin-react/lib/rules/default-props-match-prop-types.js:180:44)
    at Array.reduce (native)
    at getPropertiesFromIntersectionTypeAnnotationNode (/Users/brunolemos/Projects/devhub/node_modules/eslint-plugin-react/lib/rules/default-props-match-prop-types.js:173:31)
    at getPropTypesFromTypeAnnotation (/Users/brunolemos/Projects/devhub/node_modules/eslint-plugin-react/lib/rules/default-props-match-prop-types.js:197:26)
    at Object.handleStatelessComponent (/Users/brunolemos/Projects/devhub/node_modules/eslint-plugin-react/lib/rules/default-props-match-prop-types.js:331:42)
    at updatedRuleInstructions.(anonymous function) (/Users/brunolemos/Projects/devhub/node_modules/eslint-plugin-react/lib/util/Components.js:666:75)
    at listeners.(anonymous function).forEach.listener (/Users/brunolemos/Projects/devhub/node_modules/eslint/lib/util/safe-emitter.js:47:58)
    at Array.forEach (native)
    at Object.emit (/Users/brunolemos/Projects/devhub/node_modules/eslint/lib/util/safe-emitter.js:47:38)
    at NodeEventGenerator.applySelector (/Users/brunolemos/Projects/devhub/node_modules/eslint/lib/util/node-event-generator.js:251:26)
    at NodeEventGenerator.applySelectors (/Users/brunolemos/Projects/devhub/node_modules/eslint/lib/util/node-event-generator.js:280:22)

{
    "react": "^16.0.0",
    "react-native": "0.49.3",
    "babel-eslint": "^8.0.1",
    "eslint": "^4.9.0",
    "eslint-config-airbnb": "^16.1.0",
    "eslint-config-prettier": "^2.6.0",
    "eslint-config-react-app": "^2.0.1",
    "eslint-plugin-babel": "^4.1.2",
    "eslint-plugin-flowtype": "^2.39.1",
    "eslint-plugin-import": "^2.7.0",
    "eslint-plugin-jsx-a11y": "^6.0.2",
    "eslint-plugin-prettier": "^2.3.1",
    "eslint-plugin-react": "^7.4.0",
    "eslint-plugin-react-native": "^3.1.0"
}

.eslintrc
{
  "parser": "babel-eslint",
  "extends": [
    "airbnb",
    "plugin:flowtype/recommended",
    "plugin:react/recommended",
    "prettier",
    "prettier/flowtype",
    "prettier/react"
  ],
  "env": {
    "es6": true,
    "jest": true,
    "node": true
  },
  "globals": {
    "__DEV__": true
  },
  "plugins": [
    "babel",
    "flowtype",
    "import",
    "react",
    "react-native",
    "prettier"
  ],
  "parserOptions": {
    "ecmaVersion": 6,
    "ecmaFeatures": {
      "jsx": true
    },
    "sourceType": "module"
  },
  "settings": {
    "import/resolver": {
      "node": {
        "extensions": [
          ".js",
          ".jsx",
          ".android.js",
          ".ios.js"
        ]
      }
    }
  },
  "rules": {
    "react/jsx-filename-extension": 0,
    "react/prefer-stateless-function": [
      "error",
      {
        "ignorePureComponents": true
      }
    ],
    "react/require-default-props": 0,
    "no-case-declarations": 0,
    "no-confusing-arrow": 0,
    "no-console": [
      "error",
      {
        "allow": [
          "debug",
          "error",
          "warn"
        ]
      }
    ],
    "no-underscore-dangle": 0,
    "no-nested-ternary": 0,
    "react-native/no-unused-styles": 2,
    "react-native/split-platform-components": 2,
    "react-native/no-color-literals": 2,
    "no-plusplus": 0,
    "prettier/prettier": [
      "error",
      {
        "semi": false,
        "singleQuote": true,
        "trailingComma": "all"
      }
    ]
  }
}

Any idea on which file this is breaking, and what the code looks like?

I use flow, so it may be related.

@ljharb any debug flag I can turn on?
Couldn't find the exact file.

If I add a console.log
    function declarePropTypesForIntersectionTypeAnnotation(propTypes, declaredPropTypes) {
+      console.log(propTypes)

Node {
  type: 'IntersectionTypeAnnotation',
  start: 354,
  end: 578,
  loc:
   SourceLocation {
     start: Position { line: 14, column: 9 },
     end: Position { line: 28, column: 8 } },
  range: [ 354, 578 ],
  types:
   [ Node {
       type: 'ObjectTypeAnnotation',
       start: 354,
       end: 445,
       loc: [Object],
       range: [Object],
       callProperties: [],
       properties: [Object],
       indexers: [],
       exact: false,
       _babelType: 'ObjectTypeAnnotation' },
     Node {
       type: 'UnionTypeAnnotation',
       start: 454,
       end: 577,
       loc: [Object],
       range: [Object],
       types: [Object],
       _babelType: 'UnionTypeAnnotation' } ],
  _babelType: 'IntersectionTypeAnnotation' }

Cannot read property 'name' of undefined
Error line: const typeNode = typeScope(annotation.id.name);

i think console.log(context.getFilename())?

@ljharb Found it. It's because of the | flow operator:
props: {
    cache?: ?string,
    linkURL: string,
    navigation: Object,
    size?: ?number,
  } & (
    | {
        username?: ?string,
      }
    | {
        avatarURL: string,
      }
    | {
        email?: ?string,
      })

Thanks, that's very helpful.

Hi, same problem, here.
type Props = FormProps & {
  handleSubmit: () => *,
  ...
};

Same problem, as @brunolemos found out, it seems to be related to Flow's &.
Throws with these test cases:
// @flow
import React from 'react';
import type { Node } from 'react'

type BasePropsType = {
  className?: string,
  text?: string,
}

type SomeComponentPropsType<T> = BasePropsType & {
  something: string,
  someOtherThing: T,
}

const SomeComponent = <T>(props: SomeComponentPropsType<T>): Node =>

// @flow
import React from 'react';
import type { Node } from 'react'

type BasePropsType = {
  className?: string,
  text?: string,
}

type SomeComponentPropsType = BasePropsType & {
  something: string,
}

const SomeComponent = (props: SomeComponentPropsType): Node =>

// @flow
import React from 'react';
import type { Node } from 'react'

type BasePropsType = {
  className?: string,
  text?: string,
}

type SomeComponentPropsType<T> = BasePropsType & {
  something: string,
  someOtherThing: T,
}

const SomeComponent = (props: SomeComponentPropsType<*>): Node =>

Does not throw with:
// @flow
import React from 'react';
import type { Node } from 'react'

type SomeComponentPropsType<T> = {
  something: string,
  someOtherThing: T,
}

const SomeComponent = <T>(props: SomeComponentPropsType<T>): Node =>

node: v8.8.1
package:
{
  "eslint": "^4.10.0",
  "eslint-config-airbnb": "^16.1.0",
  "eslint-config-prettier": "^2.3.0",
  "eslint-plugin-ava": "^4.2.1",
  "eslint-plugin-babel": "^4.1.2",
  "eslint-plugin-flowtype": "^2.35.0",
  "eslint-plugin-import": "^2.8.0",
  "eslint-plugin-jsx-a11y": "^6.0.2",
  "eslint-plugin-react": "^7.4.0"
}

eslintrc.js
module.exports = {
  parser: 'babel-eslint',
  plugins: [
    'ava',
    'babel',
    'flowtype',
    'import',
    'jsx-a11y',
    'react',
  ],
  extends: [
    'airbnb',
    'plugin:ava/recommended',
    'plugin:flowtype/recommended',
    'plugin:import/errors',
    'plugin:import/warnings',
    "prettier",
    "prettier/flowtype",
    "prettier/react",
  ],
   ...
}

Same problem on node v8.9.0.
"eslint": "^4.9.0",
yarn run lint
yarn run v1.2.1
$ eslint . --cache
Cannot read property 'properties' of null
TypeError: Cannot read property 'properties' of null
...

There’s no need for more comments; this is a bug, and it’s waiting for a fix - PRs are welcome.

Does anyone what version introduced this? I'm trying to figure out which version to rollback to.

I tried rolling back to 7.3.0, 7.2.0 along with airbnb config ^15.0.0 but now I started getting this error:
error  Definition for rule 'react/jsx-curly-brace-presence' was not found  react/jsx-curly-brace-presence

@mrchief if `npm ls exits nonzero, nothing can be expected to work. You’ll have to roll back the airbnb config too if you want to roll back.

I rolled back config to 15 from 16. 15 is what I have been using so far.  Those deps worked for me
Note: If you use "eslint-plugin-jsx-a11y": "5.x", you avoid this issue https://github.com/facebookincubator/create-react-app/issues/2631

The crash was fixed in https://github.com/yannickcr/eslint-plugin-react/pull/1529. But the plugin react/default-props-match-prop-types is still not working when Props are an intersection with a type imported from another file.
other-file.js:
// @flow
export type SomeType = {
  baz: string,
};

MyStatelessComponent.js:
// @flow
import React from 'react';
import type { SomeType } from './other-file';

type Props = SomeType & {
  foo: string,
  bar?: string,
};

const MyStatelessComponent = (props: Props) => (

Hello {props.foo} {props.bar} {props.baz}

);

MyStatelessComponent.defaultProps = {
  bar: 'some default',
};

Error:
#PATH#/MyStatelessComponent.js
  15:3  error  defaultProp "bar" has no corresponding propTypes declaration  react/default-props-match-prop-types

@ljharb Could this issue be reopened?

@alexvb I believe this is a common issue with other rules as well (e.g. prop-types and no-unused-prop-types).
We should probably ignore validation when using types imported from another file?

@alexvb can you file a new one for it instead?


Presentation cannot be generated as PDF

I am using GitPitch for my lectures and it is great! I used it last year and it worked very well.
However, this year, when I went back to my previous presentation, and added a few slides, I could not generate the PDF anymore.... This is very annoying, as my students needs to be able to print it out for notes.
Any idea why this is happening? Is the presentation too large?
It is here: https://gitpitch.com/plantmodelling/LBRES2106/gh-pages#/

Hi Guillaume, I just opened and printed your presentation to PDF.
You can access that PDF document here: PITCHME.pdf
Did you wait sufficiently long for the print job to complete? If it times out on your connection then (1) refresh the presentation in your browser and (2) try printing again.
I did notice on slide 17 (Tubers and Roots - World Production) and slide 46 (Soil Retention Curve) both are missing images when printed.
This tells me that the images you are using are not compatible with the aspect ratio of the presentation and are therefore spilling outside the slide boundary. Resulting in printing problems. I strongly recommend using background image sizing and scaling to ensure large images fit on your slides.
I would also recommend using an image optimizer for every image found in your img directory. Just looking at the content of that directory your images look many and large. Try tinypng.com. It's free. And very effective at reducing image size.

Thanks a lot for this very fast answer! It seems to be working fine now! I'll pay more attention to the images size and ration in the future.
Keep up the great work!


Use X-Forwarded-For IP address in HTTP logger if present

Fixes #7356.

The change as is is insecure. If someone has direct access to the server (ability to bypass proxy), they could forge the x-forwarded-for header and then perform whatever they wanted and the server would log the wrong address.
The way this is handled on most other apps that use x-forwarded-for is to either have a whitelist of trusted sources which are allowed to provided x-forwarded-for, or to just append x-forwarded-for to the actual address so both are logged.

@phemmer is there a standard log format that I can use for the latter? I don't think a whitelist is likely practical unless it just included <IP_ADDRESS> and that would also preclude something like an ELB from being used. I'm not very familiar with the CLF format used by web servers.
To be fair, I don't think the current method is that secure to begin with. I don't remember completely, but I think the remote address can also be forged. It's not as easy, but I thought I remembered that as possible. But given that method of attack is much harder, it might just be enough to write both IP addresses and call it a day.

Since the x-forwarded-for header is already a chain of addresses, I've usually seen it logged as if the socket IP were just added to the chain.
E.G.:
X-Forwarded-For: <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>

Your proxy's address is <IP_ADDRESS>:
Log:
<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS> - johndoe [02/Jan/2006:15:04:05 -0700] ...

I think the remote address can also be forged

Unless you can hijack the box's gateway (or some other box along the IP route), it's not possible to forge the socket's remote address.

Updated so it would include all IP addresses in X-Forwarded-For and the remote IP address comma separated in the log.

The header might have comma+space delimited values (X-Forwarded-For: <IP_ADDRESS>, <IP_ADDRESS>), and the code would just copy that straight into the log. This will probably be rather uncommon though. So the current PR seems acceptable.

I just merged and realized I forgot the changelog. I'll have another PR up for the changelog for this.


ValueError: Can't load save_path when it is None.

https://colab.research.google.com/github/nickwalton/AIDungeon/blob/master/AIDungeon_2.ipynb
Download Complete!

but then
AI Dungeon 2 will save and use your actions and game to continually improve AI
 Dungeon. If you would like to disable this enter 'nosaving' for any action.
 This will also turn off the ability to save games.

Initializing AI Dungeon! (This might take a few minutes)

ERROR:tensorflow:Couldn't match files for checkpoint generator/gpt2/models/model_v5/model-550
Traceback (most recent call last):
  File "play.py", line 211, in <module>
    play_aidungeon_2()
  File "play.py", line 74, in play_aidungeon_2
    generator = GPT2Generator()
  File "/content/AIDungeon/generator/gpt2/gpt2_generator.py", line 49, in __init__
    saver.restore(self.sess, ckpt)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/training/saver.py", line 1277, in restore
    raise ValueError("Can't load save_path when it is None.")

Should be fixed now. Let me know if it isn't

Nevermind. Is not fixed. Download costs got too expensive so temporarily shutting down bucket access.

Thanks a lot.
Looks like you switched to torrent now? All this works well:
Cloning into 'AIDungeon'... remote: Enumerating objects: 47, done.
...
Downloading AIDungeon2 Model... (this may take a very, very long time)
... We are now starting to download the model. It will take a while to get up to speed.
DHT errors are normal.
...

Download Complete!

Yes, there was 1 DHT error (Why not catch it and call it something else than a red ERROR?)
And then:
AI Dungeon 2 will save and use your actions and game to continually improve AI
 Dungeon. If you would like to disable this enter 'nosaving' for any action.
 This will also turn off the ability to save games.

Initializing AI Dungeon! (This might take a few minutes)

Generating story...

You are Andreas, a wizard living in the kingdom of Larion. You have a staff and
 a spellbook.  You look around and see that it's not much different than
 when you left it.
As you walk through the ruins, you hear voices behind you. It's another group
 of people who want to know what happened to you

Well done, all good.
Thank you very much!
CanClose!


How to add custom shortcut for visual block?

In my normal command line nvim(that is in my windows command prompt), I can enter visual block using ctrl + q or ctrl + v. Also since I am new to nvim, I would like to keep ctrl + v as paste and instead only use ctrl + q to enter visual block mode.
In my keybindings, I was able to disable ctrl+v and get back simple paste functionality like so.
  {
    "command": "-vscode-neovim.send",
    "key": "ctrl+v"
  },

In the same way, I would like to add a shortcut for ctrl+q which allows me to enter visual block mode.
I see that for ctrl+q, there is some stuff in keybindings.json already.
  {
    "key": "ctrl+q",
    "command": "-workbench.action.quickOpenNavigateNextInViewPicker",
    "when": "inQuickOpen && inViewsPicker"
  },
  {
    "key": "ctrl+q",
    "command": "-workbench.action.quickOpenView"
  },

I'm not entirely sure, but I believe you can fix this by adding a keybinding on the Neovim side. Somewhere in your init.vim, alias <C-q> to map to <Esc>v or something similar. Just make sure there are no conflicting bindings in your VSCode.
Let me know if you're still having this issue and whether this solves it for you. In the mean time, I'm going to close this issue. You can always re-open it if there's a bug.


Lack of description of privatelink doma names for Container service in China

[Enter feedback here]
No description of private link service zone names and other details for China Cloud:

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: a88af182-32aa-a8f3-359d-b92ae1cfb8c7
Version Independent ID: 01ce07fc-4bc2-def5-9ecd-a80330ad9488
Content: Azure Private Endpoint private DNS zone values
Content Source: articles/private-link/private-endpoint-dns.md
Service: private-link
GitHub Login: @abell
Microsoft Alias: abell

@ms-kewu
Thanks for your feedback! We will investigate and update as appropriate.

Hello @ms-kewu, I appreciate your contribution to the Private Link docs! I am investigating this issue.

Thanks for your dedication to our documentation. We have created an internal work item in our backlog to resolve this issue. If you determine another possible update to our documentation, please don't hesitate to reach out again. #please-close


RIUI-680 display case lists in ascending order of last updated date.

fixed as per the requirement.
added unit test

You've order it by earliest created date.
it need to be order by last update


Oscillating in manual control

I am attempting to test Mocap support #2317, with Mavros. It's was recommended that the master build was used, however when my quadrotor has the master build of pixhawk px4 firmware it oscillates in manual flight. This wasn't an issue with the stable build.
My logs are:
http://logs.uaventure.com/view/Ujvh3pm2JzNQeX5HLDp7sC
http://logs.uaventure.com/logmuncher/charts/Ujvh3pm2JzNQeX5HLDp7sC/logmuncher.log
Any help is appreciated.

@tumbili We need to check if the default output rate is still set to 400 Hz for all platforms.

Could you provide more details on your setup? Which board? Where did you connect your motors?

I used a 3DR pixhawk, the motors were connected to the servo ports 1,2,3 and 4.

MAIN or AUX port?

MAIN

Ok. Do you have a log file from stable as well?

No I dont, I wasn't sure which log was the most recent so I deleted them all prior getting the log posted.
I can flash the stable and fly, but not until Monday as the multi rotor is in my university.

Hey, @LorenzMeier I performed the flights. The flight was stable on the stable release. Here are the logs.
Plots: http://logs.uaventure.com/view/4W77E3s8fbWd6uc5TGbG5n
Log: http://logs.uaventure.com/logmuncher/charts/4W77E3s8fbWd6uc5TGbG5n/logmuncher.log

Ok, two main things:

You might want to try master from today. The phase margin improved.
Your log shows that your system was previously already marginal and not well tuned. See the huge angle offset: http://logs.uaventure.com/view/4W77E3s8fbWd6uc5TGbG5n#AS_Roll_PLOT and also note the rate offset: http://logs.uaventure.com/view/4W77E3s8fbWd6uc5TGbG5n#A_RollRate_PLOT

I would advise to balance your airframe, increate the MC_ROLLRATE_I and MC_PITCHRATE_I gains and re-try with master.

It works now on master. Thanks, still some issues but its flyable so I will fox the gains.

@BrownKyle Could you upload the log with latest master where you used the same gains like you used in stable?

The words "still some issues" makes me think that there is still something different between stable and master.

I have flights with the master working, but I started changing the gains shortly after. I have the log which I thick is the one from after flying with the most recent master. I can't be sure, is there a way to get the filename of the log from log muncher?
Since the flight I have been changing the gains and have just started going through the tuning process detailed on pixhawk.org. Therefore my gains are no longer the same, is it possible to get the aircraft parameters from log muncher and I can redo the flight? If not I could reset the frame to generic quad it was initially set to and then fly again?

Here are the logs.
Plots: http://logs.uaventure.com/view/kAuwLAYAdRUaVgAzKZW9Pn
Log: http://logs.uaventure.com/logmuncher/charts/kAuwLAYAdRUaVgAzKZW9Pn/logmuncher.log
I increased the pitch rate and roll rate integral gains from 0.05 to 0.055. But the gains are the same except from that. The flight was a little twitchy. The odd thing was it would fly twitchy and then very smooth, it wasn't too consistent.

I did a flight with the Generic Quad, gains. they appear to be different from the initial Generic Quad gains I had.
The flight seemed good at first, pitch and rolling seemed fine, except when you do both. The quad became unstable and difficult to land.
Plots: http://logs.uaventure.com/view/bFmmZDPriYkTZ9oW3rLCr3
Log: http://logs.uaventure.com/logmuncher/charts/bFmmZDPriYkTZ9oW3rLCr3/logmuncher.log
I will set up the quad will the original gains and test that.

So I changed the gains to the original set. It wasn't different from the generic quad on the current master, just the acro limits where different, which I don't imagine will have an effect as we were flying in manual/angle mode.
The logs are
Plots: http://logs.uaventure.com/view/jRN9Z8EzXVWcpPMDXhXbiP
Log: http://logs.uaventure.com/logmuncher/charts/jRN9Z8EzXVWcpPMDXhXbiP/logmuncher.log
The system seems to be very stable and without control inputs other than throttle will hoover in place very nicely. But there is still some small oscillation and it seems to be random, but no where near as bad as it was originally.

Ok, I checked the log and it looks very similar to logs from stable. I guess we can close this then.
Feel free  to reopen if you feel like there is still a problem with this.


Syntax Error on Version 1.3.0

After installing v1.3.0 via npm, our app is encountering the following error during Jest unit tests:
node_modules/amazon-cognito-auth-js/lib/index.js:18
    export { default as CognitoAccessToken } from './CognitoAccessToken';
    ^^^^^^

    SyntaxError: Unexpected token export

      at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:403:17)
      at Object.<anonymous> (node_modules/@aws-amplify/auth/src/Auth.ts:52:1)
      at Object.<anonymous> (node_modules/@aws-amplify/auth/src/index.ts:14:1)

Hi @Adkaiser
Can you verify if 1.3.1 is working for you?

Confirmed, this is working for me now on 1.3.1. Thanks a bunch.


fix for IE10 autohiding

if there's a related target to the event, the check that instead. this fixes issue with IE autohiding when it shuoldn't, all tests still pass

this pull request fixes issue #69


Fix for phpstan

With @mixin \Spatie\Image\Manipulations for phpstan the magic methods returns \Spatie\Image\Manipulations but the real return is \Spatie\Image\Image
So when concatenating phpstan give you
 Call to an undefined method Spatie\Image\Manipulations::save()
Is there a better way to fix that??

Thanks for your work on this!
I'm going to pass on this one for now.
We'll soon create a new major version of this package that drop the dependency on intervention/image and league/glide.

We'll soon create a new major version of this package

@freekmurze hi
If that is going to take time, would it be possible to add this PR until meanwhile? It will only be comments PHPDoc


feat: support subgraphs on Filecoin [SF-1156]

@biga816 it still connects to sepolia?

@biga816 it still connects to sepolia?

Yes because we can use Laconic's subgraphs only on Filecion Mainnet.

@biga816 looks good to me!

Please rebase with develop before merging as I can see some changes not part of develop anymore present in this PR.
Please trigger a UAT deployment so that we can test it out.

@as472

Please rebase with develop before merging as I can see some changes not part of develop anymore present in this PR.

I have already done that! Could you approve this PR?

Please trigger a UAT deployment so that we can test it out.

Sure!


Optimize and benchmark db indexes.

Currently we have indexes in some places, that could hurt performance. For ex:
    status = db.Column(db.Enum(PackageStateEnum, native_enum=False),
                       index=True, default=PackageStateEnum.active)

we will almost never face a query for "all deleted packages". As far as I understand - only this query may have some benefit for the index, as there would likely be only few deleted packages. But our most common case will be to get all the active packages (plus maybe some publisher filter). If the optimizer decides to use index here - it will likely to slow down the query (compared to fullscan), so we have to avoid it. The fact that optimizer will have to kick it and make a choice may itself take time. Noting that that almost all our package qureies will have status=active filter, the cumulative impact may be significant. Overall - taking the write costs of maintaining such an index into consideration, downsides may outweight its benefits.
We should properly measure performance of our common queries and put indexes only when there is some gain.

See discussion start here: https://github.com/frictionlessdata/dpr-api/pull/179#pullrequestreview-14558372

@Fak3 right now this is definitely icebox. Either way I doubt this impacts performance much. Good to have this issue for the future but right now please you or @subhankarb don't spend time on it 😄


[CI] MeshKit Error Util: duplicate errors causing failures

Notes for Reviewers
This PR fixes #6352
Signed commits

[ ] Yes, I signed my commits.

Please Don't merge until i create a precommit hook and a workflow to run make error so that no duplicacy again happens


drag and drop support for two separate grids

Any way how to implement table(grid)'s row drag to another table(grid)?
I have grid on the left panel and another grid on the main panel.
I have to drag the selected rows from left panel and drop it to the main panel's grid.
I tried to use jquery UI drag and drop but every time I drag grid's row, it selecting other rows of the same grid.
I'm using w2ui version 1.4.3.
Any help is much appreciated,
Thanks,

Do you have a solution here? We are trying to solve the same problem...

Here's an example moving rows from one grid to another, by clicking the rows
http://w2ui.com/web/demos/#!grid/grid-19
That example is not using drag and drop, but it does what you mention is it might be a starting point.

@relitodea
I modified the code to cater my project's requirement. I have solved this problem but I don't know if it's same with your problem. I'll try to recreate it with simple example and post it here.

@relitodea
Here's a grid draggable demo. I used the grid demo 19 file and modified the w2ui-1.4.3.js to support draggable row, then declare the draggable function. Also just added an is-dragover style.
Sorry I couldn't make a fiddler for this as I do not know where to put the modified js.
I hope this one helps. ;)
GridDraggableDemo.zip

Sorry I couldn't make a fiddler for this as I do not know where to put the modified js.

Fork the W2UI GitHub repo, commit your changes, and than reference your new URL from the Fiddle.

great solution - thank you for your help.


image's basic information are missed

After I got the image, there is no method to get its profiles, such as
REPOSITORY          TAG           CREATED             VIRTUAL SIZE

Compare with docker images, you should know the difference
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
alpine              3.2                 31f630c65071        10 weeks ago        5.254 MB

Interesting part is, the RepoTags is empty from the output:
irb(main):057:0> image = Docker::Image.create('fromImage' => 'alpine:3.2')
irb(main):058:0> image
=> #<Docker::Image:0x007fc0e1da44c8 @id="31f630c65071", @info={"id"=>"31f630c65071", :headers=>{}, "RepoTags"=>[]}, @connection=#<Docker::Connection:0x007fc0e1bad750 @url="tcp://<IP_ADDRESS>:2376", @options={"..."}>>

If you know how to get the image's repository and tag, let me know.
Thanks.

I can get the information by image.history
this ticket can be closed.


config.yml added weather_forecast_method selection

Added (to what I believe ) is the options to select Solcast and solar.forecast as weather options for HA.

I'll likely make a new branch and pull a request soon that adds most (if not all) the other variables found in the config_emhass, code and wiki that is compatible.
I would like to add set_def_constant personally
I would be more than happy if someone made this before me however.


laravel 5.6 compatible?

hi, im trying to install this package in laravel 5.6 but i get this error:
composer require nwidart/laravel-menus
Using version ^1.0 for nwidart/laravel-menus
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Conclusion: remove laravel/framework v5.6.29
- Conclusion: don't install laravel/framework v5.6.29
- nwidart/laravel-menus 1.0.0 requires illuminate/view 5.5.* -> satisfiable by illuminate/view[5.5.x-dev, v5.5.0, v5.5.16, v5.5.17, v5.5.2, v5.5.28, v5.5.33, v5.5.34, v5.5.35, v5.5.36, v5.5.37, v5.5.39, v5.5.40].
- nwidart/laravel-menus 1.0.x-dev requires illuminate/view 5.5.* -> satisfiable by illuminate/view[5.5.x-dev, v5.5.0, v5.5.16, v5.5.17, v5.5.2, v5.5.28, v5.5.33, v5.5.34, v5.5.35, v5.5.36, v5.5.37, v5.5.39, v5.5.40].
- don't install illuminate/view 5.5.x-dev|don't install laravel/framework v5.6.29
- don't install illuminate/view v5.5.0|don't install laravel/framework v5.6.29
- don't install illuminate/view v5.5.16|don't install laravel/framework v5.6.29
- don't install illuminate/view v5.5.17|don't install laravel/framework v5.6.29
- don't install illuminate/view v5.5.2|don't install laravel/framework v5.6.29
- don't install illuminate/view v5.5.28|don't install laravel/framework v5.6.29
- don't install illuminate/view v5.5.33|don't install laravel/framework v5.6.29
- don't install illuminate/view v5.5.34|don't install laravel/framework v5.6.29
- don't install illuminate/view v5.5.35|don't install laravel/framework v5.6.29
- don't install illuminate/view v5.5.36|don't install laravel/framework v5.6.29
- don't install illuminate/view v5.5.37|don't install laravel/framework v5.6.29
- don't install illuminate/view v5.5.39|don't install laravel/framework v5.6.29
- don't install illuminate/view v5.5.40|don't install laravel/framework v5.6.29
- Installation request for laravel/framework (locked at v5.6.29, required as 5.6.*) -> satisfiable by laravel/framework[v5.6.29].
- Installation request for nwidart/laravel-menus ^1.0 -> satisfiable by nwidart/laravel-menus[1.0.0, 1.0.x-dev].

How Can I install version 3?


Subclassing an Existing DbContext for an Alternate Provider Causes Compilation Errors

In Entity Framework Core 3.1, when subclassing an existing DbContext, it will generate an error if you're missing a constructor:
public MySqliteContext(DbContextOptions<MySqliteContext> options) : base(options)
However, this will type error, because the constructor of the base class is expecting type DbContextOptions<MyContext> for options, not DbContextOptions<MySqliteContext>.
This is discussed an in this issue, and the work around is to add a protected constructor in the base class.
https://github.com/dotnet/efcore/issues/7533#issuecomment-353669263

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 7b011c7a-3534-78e3-b491-addd96fb5ba1
Version Independent ID: 371826c5-3ef2-4eef-32e9-d55c777cd9d3
Content: Migrations with Multiple Providers - EF Core
Content Source: entity-framework/core/managing-schemas/migrations/providers.md
Product: entity-framework
Technology: entity-framework-core
GitHub Login: @bricelam
Microsoft Alias: bricelam

As a small addendum to this, the once you've made the changes, you still need some code that will register the alternate class to the DI system, otherwise the migration will fail. For an ASP application, something like this would work:
if (_env.IsDevelopment())
{
    services.AddDbContext<MyContext, MySqliteContext>(options =>
            options.UseSqlite(Configuration.GetConnectionString("SqliteConnectionString"))
        );
}

Though you'd also need to set $env:ASPNETCORE_ENVIRONMENT='Development' before running the migration command.


Add note for Oracle RAC customers

What does this PR do?
Adding a note for Oracle RAC customers that the agent must connect to each node separately
Motivation
Removing ambiguity.
Additional Notes

Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] Changelog entries must be created for modifications to shipped code
[ ] Add the qa/skip-qa label if the PR doesn't need to be tested during QA.
[ ] If you need to backport this PR to another branch, you can add the backport/<branch-name> label to the PR and it will automatically open a backport PR once this one is merged

/merge


[PECO-1263] Extract asyncexecution from thrift backend

Description
Note: This PR should merge after #311 since it depends on the commits in that PR
To clean up the dependencies between client.py → thrift_backend.py → ae.py, this PR makes it so that AsyncExecution knows how to hydrate itself from a TExecuteStatementResp.
This way, thrift_backend.py doesn't need to import anything from ae.py. In theory, thrift_backend.py should never care about the pep-249 interface or about the concept of AsyncExecutions. There is an exception to this already where thrift_backend doesn't know how to fetch results unless it is provided a client.Cursor object, which looks funky. To get around this without making an unneccessary roundtrip to create a new "cursor", I use a FakeCursor() object here. Once we refactor thrift_backend result fetching into a separate interface the FakeCursor will be removed.
What's next
I'm going to clean up the user interface for this to separate get_result_or_status into separate methods. Also need to add tests for picking up a running execution that doesn't return results immediately.

Rebased onto the tip of peco-1263-staging after #311 merged.


TypeError: mixerFactory is not a function

I use the code from the demo and I have error mixerFactory is not a function

That is a wrong demo code. You want to use this
`const { motionProperties } = useMotionProperties(domElementRef, {
cursor: 'grab',
x: 0,
y: 0
})
const { set } = useSpring(motionProperties, {
damping: 50,
stiffness: 220,
})`


MTU Size Not Changed

Hi! I use 0.7.3 version. I want to write 21 bytes of data. But I'm getting these errors.
D/FlutterBluePlugin(13765): [onCharacteristicWrite] uuid: 0000ffe1-0000-1000-8000-00805f9b34fb status: 11
E/flutter (13765): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: Exception: Failed to write the characteristic

I got the same error when change MTU then write the message, anyone knows the solution?

I got the same error

D/BluetoothGatt(32503): configureMTU() - device: 78:A5:04:57:99:4D mtu: 512
D/BluetoothGatt(32503): configureMTU() - device: 78:A5:04:57:99:4D mtu: 512
D/BluetoothGatt(32503): onConnectionUpdated() - Device=78:A5:04:57:99:4D interval=6 latency=0 timeout=500 status=0
D/BluetoothGatt(32503): onConfigureMTU() - Device=78:A5:04:57:99:4D mtu=23 status=0
D/FlutterBluePlugin(32503): [onMtuChanged] mtu: 23 status: 0

@mericgerceker @trungdd9
You can fix it with few lines of code
device.mtu.elementAt(1).then((mtu) {
      mtu = mtu < 23 ? 20 : mtu - 3; // failsafe by always assuming an ATT MTU and not a DATA MTU
      // do your service discovery
      device.discoverServices();
    });
await device.requestMtu(512);

Check this PR for more detail https://github.com/pauldemarco/flutter_blue/pull/579

@toxichand At what stage should I write this code? Thank you so much :)

@mericgerceker @trungdd9
You can fix it with few lines of code
device.mtu.elementAt(1).then((mtu) {
      mtu = mtu < 23 ? 20 : mtu - 3; // failsafe by always assuming an ATT MTU and not a DATA MTU
      // do your service discovery
      device.discoverServices();
    });
await device.requestMtu(512);

Check this PR for more detail #579

It doesn't work

Yeah, trying to increase MTU in Android device but getting 23 as maximum. Any solution? Do we know if it is something device related?. Getting this in Logs
D/BluetoothGatt(30607): configureMTU() - device: E0:02:97:C7:D3:DD mtu: 500
D/BluetoothGatt(30607): onConfigureMTU() - Device=E0:02:97:C7:D3:DD mtu=23 status=0

Thanks

Same problem. Any solutions ?

We made this function.
Where d is the connected device. Sometimes request doesn't do anything. But whit this it works for us (Android)
Future<int> controlMtu() async {
    int mtu = await d!.mtu.first;
    await d!.requestMtu(247);

    while (mtu != 247) {
      print("Waiting for requested MTU $mtu");
      await Future.delayed(const Duration(seconds: 1));
      mtu = await d!.mtu.first;
    }
    return mtu;
  }

Im facing a similar issue, on android Im able to get a larger (192) mtu for about 30 seconds before the connection(?) resets and only sends 23 bytes after. Has anyone here seen similar behavior?

Update: setting a short delay after requesting the mtu seems to solve the above issue ^. I call the method below shortly after connecting to the device (Generic ESP32).
Future<void> TryMtu(BluetoothDevice device) async {   int mtuFirst = await device.mtu.first;   print("Initial MTU is $mtuFirst bytes. Trying to negotiate 192 bytes…");   await device.requestMtu(192);   Future.delayed(const Duration(seconds: 2)); }

@mericgerceker @trungdd9 You can fix it with few lines of code
device.mtu.elementAt(1).then((mtu) {
      mtu = mtu < 23 ? 20 : mtu - 3; // failsafe by always assuming an ATT MTU and not a DATA MTU
      // do your service discovery
      device.discoverServices();
    });
await device.requestMtu(512);

Check this PR for more detail #579

Hello, can you explain me, please, what is going on at this code snippet?


MSRuleCleaner deleting rules for rejected wfs that are being used by other workflows.

Impact of the bug
Inform which systems get affected by this bug. Which agent(s)? Which central service(s)?
MSRuleCleaner, MSTransferor, ReqMgr2
Describe the bug
There are three wfs concerning this situation in order of injection to RegMgr2.
wf1 - pdmvserv_RVCMSSW_14_0_18RunJetMET02024D__2024D_ReReco_GTValidation_RelVal_2024D_241024_121809_606
new: 2024-10-24 12:18:09 UTC
assignment-approved: 2024-10-24 12:18:14 UTC
rejected: 2024-10-24 12:22:05 UTC
rejected-archived: 2024-10-26 16:56:46 UTC

wf2 - pdmvserv_RVCMSSW_14_0_18RunJetMET02024D__2024D_ReReco_GTValidation_RelVal_2024D_241024_211828_4633
new: 2024-10-24 21:18:28 UTC
assignment-approved: 2024-10-24 21:18:35 UTC
assigned: 2024-10-24 22:02:27 UTC
staging: 2024-10-24 22:04:03 UTC
aborted: 2024-11-05 16:20:00 UTC

wf3 - pdmvserv_RVCMSSW_14_0_18RunJetMET02024D__2024D_Prompt_GTValidation_RelVal_2024D_241024_212236_6565
new: 2024-10-24 21:22:36 UTC
assignment-approved: 2024-10-24 21:22:42 UTC
assigned: 2024-10-24 22:03:10 UTC
staging: 2024-10-24 22:04:06 UTC
aborted: 2024-11-05 14:02:36 UTC

Now Keep in mind that all these wfs require the same input blocks i.e
[{'scope': 'cms', 'name': '/JetMET0/Run2024D-v1/RAW#9d364486-0ad1-4207-812f-29f23249e197'},
{'scope': 'cms', 'name': '/JetMET0/Run2024D-v1/RAW#4a41434d-4d35-4c12-b6c3-037e172642d8'}]

and that
wf1 was rejected 4 mins after injection, before it was even assigned, and therefore it never went to staging state and thus no ms-transferor entry or rule creation in rucio.
Now Nearly, 9 hours later wf2 is injected and shortly (~mins) after wf3 is also injected
The follwing rules are created for wf2 by ms-transferor
['3353ed719bf446d38ccb739ba1076642', '6595ca5e42204e4c913e549e0ba24205']

transferor - 1st Create (This aligns with rucio block rules history I pasted above)
reqmgr2ms-20241024-ms-transferor-574c4c9f57-drtk2.log-2024-10-24 22:04:02,376:INFO:MSTransferor: Creating rule for workflow pdmvserv_RVCMSSW_14_0_18RunJetMET02024D__2024D_ReReco_GTValidation_RelVal_2024D_241024_211828_4633 with 2 DIDs in container /JetMET0/Run2024D-v1/RAW, RSEs: T1_US_FNAL_Disk, grouping: ALL
reqmgr2ms-20241024-ms-transferor-574c4c9f57-drtk2.log:2024-10-24 22:04:02,484:INFO:MSTransferor: Rules successful created for /JetMET0/Run2024D-v1/RAW : ['3353ed719bf446d38ccb739ba1076642', '6595ca5e42204e4c913e549e0ba24205']

Now, MS-transferor processes wf3, but the rules are already created. So no new rules are created and MS-transferors keeps the same rule ids
transferor - 2nd Try Create
reqmgr2ms-20241024-ms-transferor-574c4c9f57-drtk2.log-2024-10-24 22:04:05,676:INFO:MSTransferor: Creating rule for workflow pdmvserv_RVCMSSW_14_0_18RunJetMET02024D__2024D_Prompt_GTValidation_RelVal_2024D_241024_212236_6565 with 2 DIDs in container /JetMET0/Run2024D-v1/RAW, RSEs: T1_US_FNAL_Disk, grouping: ALL
reqmgr2ms-20241024-ms-transferor-574c4c9f57-drtk2.log:2024-10-24 22:04:05,740:WARNING:Rucio: Resolving duplicate rules and separating every DID in a new rule...
reqmgr2ms-20241024-ms-transferor-574c4c9f57-drtk2.log-2024-10-24 22:04:05,790:WARNING:Rucio: Found duplicate rule for account: wmcore_transferor
reqmgr2ms-20241024-ms-transferor-574c4c9f57-drtk2.log-, rseExp: T1_US_FNAL_Disk
reqmgr2ms-20241024-ms-transferor-574c4c9f57-drtk2.log-dids: [{'scope': 'cms', 'name': '/JetMET0/Run2024D-v1/RAW#9d364486-0ad1-4207-812f-29f23249e197'}, {'scope': 'cms', 'name': '/JetMET0/Run2024D-v1/RAW#4a41434d-4d35-4c12-b6c3-037e172642d8'}]
reqmgr2ms-20241024-ms-transferor-574c4c9f57-drtk2.log-2024-10-24 22:04:05,849:WARNING:Rucio: Found duplicate rule for account: wmcore_transferor
reqmgr2ms-20241024-ms-transferor-574c4c9f57-drtk2.log-, rseExp: T1_US_FNAL_Disk

Everything goes smoothly, wf2 and wf3 are staging, BUT
MS-Rulecleanor picks up rejected wf1 sees that it has rucio rules and it deletes them.
rulecleaner - 1st Delete
reqmgr2ms-20241024-ms-rulecleaner-fc79648b4-qtrf9.log-2024-10-24 22:14:27,830:DEBUG:MSRuleCleaner: Dispatching workflow: pdmvserv_RVCMSSW_14_0_18RunJetMET02024D__2024D_ReReco_GTValidation_RelVal_2024D_241024_121809_606
reqmgr2ms-20241024-ms-rulecleaner-fc79648b4-qtrf9.log-2024-10-24 22:14:28,189:INFO:MSRuleCleaner: plineMSTrBlock: Deleting ruleId: 6595ca5e42204e4c913e549e0ba24205
reqmgr2ms-20241024-ms-rulecleaner-fc79648b4-qtrf9.log-2024-10-24 22:14:28,217:DEBUG:connectionpool: http://cms-rucio.cern.ch:80 "DELETE /rules/6595ca5e42204e4c913e549e0ba24205 HTTP/1.1" 200 0
reqmgr2ms-20241024-ms-rulecleaner-fc79648b4-qtrf9.log:2024-10-24 22:14:28,217:INFO:MSRuleCleaner: plineMSTrBlock: Deleting ruleId: 3353ed719bf446d38ccb739ba1076642
reqmgr2ms-20241024-ms-rulecleaner-fc79648b4-qtrf9.log-2024-10-24 22:14:28,236:DEBUG:connectionpool: http://cms-rucio.cern.ch:80 "DELETE /rules/3353ed719bf446d38ccb739ba1076642 HTTP/1.1" 200 0

The rest two deletes were for these 2 wfs,
pdmvserv_RVCMSSW_14_0_18RunJetMET02024D__2024D_ReReco_GTValidation_RelVal_2024D_241022_092626_4354
pdmvserv_RVCMSSW_14_0_18RunJetMET02024D__2024D_ReReco_GTValidation_RelVal_2024D_241022_101534_7605
They also share the same input Blocks as above 3 wfs but difference is that they were placed at CERN.
rulecleaner - to Delete again 1 second later
reqmgr2ms-20241024-ms-rulecleaner-fc79648b4-qtrf9.log:2024-10-24 22:14:29,027:INFO:MSRuleCleaner: plineMSTrBlock: Deleting ruleId: 3353ed719bf446d38ccb739ba1076642

rulecleaner - Delete again 3 second later again
reqmgr2ms-20241024-ms-rulecleaner-fc79648b4-qtrf9.log:2024-10-24 22:14:32,810:INFO:MSRuleCleaner: plineMSTrBlock: Deleting ruleId: 3353ed719bf446d38ccb739ba1076642

Conclusion, wf1's rejection lead to rules deletion for wf1 and wf2 because ** MS-Rulecleanor does not check if the rule is being used by any other workflow or not.
I went through the code and found that it only checks the current wfs state, https://github.com/dmwm/WMCore/blob/master/src/python/WMCore/MicroService/MSRuleCleaner/MSRuleCleaner.py#L323
How to reproduce it
Steps to reproduce the behavior:
submit 1 request requiring a certain block of data, reject it and resubmit another request requiring the same blocks in the timeframe where the oriignal rucio rules are not deleted.
Expected behavior
A clear and concise description of what you expected to happen.
MSRuleCleaner to not delete rules being used by active workflows.
Additional context and error message
Add any other context about the problem here, like error message and/or traceback. You might want to use triple back ticks to properly format it.
https://its.cern.ch/jira/browse/CMSPROD-227

I will follow up with a pull requst for this issue.

Hi @amaltaro
Here are the two points we discussed in  the WMCore Dev meeting:

Instead of deleting the rule (which deletes the rule after 1 hour), Set the expiration time to expire in 0 seconds.
In MS-Transferor, we can change it to only re-use rules without a expiration time

Refresh the WMCache | WMStats Global locks more often. Due to a large amount of wfs in the system the duty cycle of MSRuleCleaner can be very long ~2 hours, resulting in inconsistencies.

@haozturk has also created a issue in CMSRucio to discuss recreation of recently deleted rule due to the unique constraint
https://github.com/rucio/rucio/issues/7168


[Basic CT] Test to check basic FW code

basic CT” test suite- Something that verifies we boot, verifies the REST api’s and SOL, but doesn’t require the tarball and could run within 30 min or less?

https://gerrit.openbmc-project.xyz/#/c/4991/


Enhancement

Better, If you could add date range selection to this.

I don't think that would be doable right now.


Remove Windows-specific default registry definitions

Going forward, Docker won't use a different default registry on Windows.
This changes Windows to use the standard Docker Hub registry as the
default registry.
There is a plan in place to migrate existing images from the Windows
registry to Hub's normal registry, in advance of the 1.11 release. In
the mean time, images on the Windows registry can be accessed by
prefixing them with registry-win-tp3.docker.io/.
cc @dmp42 @friism @icecrime @jhowardmsft @jstarks

Thanks @aaronlehmann! Should we revert #19891 and #19973 with that?

@icecrime: I considered reverting those PRs as part of this one. I think the way they make the client check which default registry the daemon uses is still more correct than leaving it up to the client, even if it won't technically matter after this PR. There may be some backward compatibility scenarios where #19891 and #19973 are still helpful.
The tradeoff is that those PRs introduced a bit more complexity. If simplifying the code is worth reintroducing the assumption that the client knows the correct default registry, I'm fine with reverting them.

@aaronlehmann Not leaving the decision to the client SGTM, let's keep this code in.
Thanks, LGTM.

LGTM


Replace resolve logic with tsconfig

Closes #651. References #646.
Turns out it wasn't difficult to replace the parts you were using, and all the validation stays the same :smile:

Actually, there's one thing missing - let me add that. It's not updating files.

@basarat Done. Made a new release with glob for tsconfig and only needed to change the prettyJSON output to go back to relative paths (making them "consistent" now too). I also added a  feature to make sure indentation is persisted for tsconfig.json.

Can you publish?  If not would you like me to?  Bas won't be on for several hours.

Sure, I can do it :+1:

Done. v7.4.0.

Awesome. Thanks a ton for this .... I would have never managed to put in so much effort :rose:


Deprecate in favour of brewcask

As mentioned in boxen/boxen#203 brewcask does better job
of managing simple application installations like this so we are
deprecating it in favour of using Boxen's built in support for
homebrew and brewcask.
Unless there is an objection, this pull request (and the deprecation)
will be effective one month from the date this was opened.

:+1: great idea!


Provide flatpak package on FlatHub

Hi dear. I suggest on you to make your light weighted wallet available as flatpak package on FlatHub.
Flatpak better than snap, because - as recent report saying - Canonical not dealing with equality with different distros - see the following post as an example (read paragraph about snap):
https://blog.linuxmint.com/?p=3766
Moreover, it FlatHub is a community project not a commercial company & thus it is more with spirit of Linux principles .....

Thanks for your proposal. We already provide many ways to install Fether on Linux. Although we do not plan to add it to Flathub in the near future, this is not excluded.


Sample Application is too complicated

Please, create a better (easier) sample application. Sample application should not rely on 25+ libraries and 9! projects. Thats cool that you know all of that, but some people may not. Sample app is very huge and it looks like some methods are already outdated.
If you want many people use the wonderful technology you designed, it should be easy to start with. Not everybody have 5+ years of expereince.

What do you mean with "9! projects"?

    // Parts of StorIO
    storIOCommon                              : project(':storio-common'),
    storIOSQLite                              : project(':storio-sqlite'),
    storIOContentResolver                     : project(':storio-content-resolver'),
    storIOSQLiteAnnotations                   : project(':storio-sqlite-annotations'),
    storIOContentResolverAnnotations          : project(':storio-content-resolver-annotations'),
    storIOCommonAnnotationsProcessor          : project(':storio-common-annotations-processor'),
    storIOSQLiteAnnotationsProcessor          : project(':storio-sqlite-annotations-processor'),
    storIOContentResolverAnnotationsProcessor : project(':storio-content-resolver-annotations-processor'),
    storIOTestCommon                          : project(':storio-test-common'),

That one

That's the StorIO lib or better the parts of it.
Later you will include only the parts you need eg contentresolver, sqlite,...

Well, sample app contains all of that things.

When did you start developing for android?

At least one year already passed (or mayby more).

My suggestion is - look at this parts which are really interesting for you right now, play with them and then look at the rest.
I changed the sample app for me for testing. So I made my first steps. First,  I'm honest, it was hard for me - but I wanted a db-lib with rxjava - and storio was the right choice. Do you know rxjava?
Focus on what you need, run the sample app and modify it.

Yeap, i have already tried rxjava with retrofit, its quite awesome. Now i am studying database solutions, i have tried ormlite and realm and everything was fine there. However, here I am stuck. Mayby storio is not something I can take with my level of expereince (after a whole night spent I am starting to think so).

Cool. Yes retrofit and rxjava are great. Storio is the perfect "addon". 😉
Keep trying - it's worth it.
And ask explicit questions - "sample is too complicated" it's too general. The developers of StorIO are great and very helpful!

Thank you, but it was not so much of a question, like a request from not very developed part of community :D. Just want to see an example of storio by itself, not with a lot of libraries integrated. Source code becomes extremely hard to understand and application by iteslf become heavyweight when there are so much things included. Hope you understand what i mean.

I EXACTLY know what you mean. ☺
But in the sample app there are a lot of more things inside which are worth to know it. Dagger2 is one of it. And look at the tests (if you are interested in testing, there is a wonderful project on github of one of the StorIO developers).

If it's okay, I'll try to contribute a simpler sample for Storio.

@artem-zinnatullin yes, just try Sqlite to realize how beautiful StorIO is.

Thanks in advance! You've made my day :)
Looking forward for new sample app!

Thanks a lot to @skrzyneckik for basic sample. But it is as overly simplified example, alas.
One would like to see really "печенюшки". At least:

how to observe changes via Get?
how to make ManyToMany - nontrivial but frequently relation.

@ValeriusGC

how to observe changes via Get?
To observer changes via Get you just need to observer query results as a RxJava observable - you can find how to use it here and this scenario is presented in storio-sample-app right here

Basic sample which I prepared is literally as basic as possible and storio-sample-app covers most of 'real' use cases. @artem-zinnatullin maybe it would be good idea to cover there this ManyToMany relation as well?

Of course, there is such hook, but no method to illustrate how changes are been observable.
@artem-zinnatullin I made some changes in storio-sample-app.

Fixed getResources().getQuantityString(R.plurals.tweets_inserted, results.results().size()) in MainActivity, because Toast looks like '%d tweets inserted'.
Fixed error: 'BootstrapApplication cannot be cast to ApplicationClass' when Instant Run was switched on.
Fixed LinearLayout attribute in list_item.xml to accomodate tweets properly.
Added method for manual updating tweets so now user can see, how updates apply to screen automatically.

Maybe you apply them to your sample?

Would it be right to have 3 sample projects?

basic sample on java as is to explain how to get started
samples on java, with separate screen on every feature, like sqlite, content-resolver, many-to-many.
samples on kotlin for the same features
//cc @artem-zinnatullin @pbochenski

Hi hi, Thank you!
Topic-starter is back and trying out basic sample app.
I am asking for help, since Basic Sample Project is not launching - In MainActivity.java line 34 there is mentioned a class TweetSQLiteTypeMapping that is missing in a project:
storIOSQLite = DefaultStorIOSQLite.builder()
            .sqliteOpenHelper(new DbOpenHelper(this))
            .addTypeMapping(Tweet.class, new TweetSQLiteTypeMapping())  //line 34
            .build();

If it is somehow generated (I don't know) please insert some comment that explains how to do so. Still can't use storio ahhh Q_Q

Hi again! Topic starter is back and I have launched Storio!!111 Yeaaa!!111
But it took me around a hour :C
I should say that Basic Sample App is still NOT that easy to copy paste from.
I offer you a new step of simplification: to make Basic Sample App stand-alone from the whole project.
So build gradle will have this:
buildscript {
    repositories {
        jcenter()
    }
    dependencies {  // the latest version of the android-apt plugin
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
}

And this:
compile 'com.android.support:design:25.0.1'
compile 'com.android.support:recyclerview-v7:25.0.1'
compile('com.android.support:appcompat-v7:25.0.1') {
    exclude group: 'com.google.android', module: 'support-v4'
}

compile 'com.pushtorefresh.storio:sqlite:1.12.0'
compile 'com.pushtorefresh.storio:sqlite-annotations:1.12.0'
apt 'com.pushtorefresh.storio:sqlite-annotations-processor:1.12.0'

Instead of Nothing and this:
compile libraries.appCompat
compile libraries.recyclerView
compile libraries.storIOSQLite
compile libraries.storIOSQLiteAnnotations
apt libraries.storIOSQLiteAnnotationsProcessor

Since it's basic app and it should not require a whole project's source code to just try what storio is.
(It could have taken me around several minutes if I decided to open it on my laptop).
Thank you for the job done, now I can really launch storio and use it in my projects!


Minified file of the library

Hi! I am a member of CDNJS and the one in charge of adding your library to our CDN.
I noticed that the file vue-ls.esm.js in some old versions is not minified. So I try to minify it by my self using the tool https://github.com/PeterDaveHello/web-minify-helper but failed. However, on CDNJS we want a minified file which runs on a browser. Could you please provide a minified file or give some other suggestions about it such as "we don't need the file"? Thank you!
P.S. Reference: the error message I got was SyntaxError: Unexpected token: name (ls$1)

Thanks for your message.
This file removed from package.
dist/vue-ls.js - original file
dist/vue-ls.min.js - minified file

@RobinCK Thanks for reply. So do I just need to add dist/vue-ls.js and dist/vue-ls.min.js, and don't need dist/vue-ls.esm.js in v2.2.0~v2.2.12?

yes


Capstone project main and about pages

Created the homepage and about pages with the following specifications:

fully responsive, breakpoint at 768px
mobile menu
Featured Speakers section generated dynamically from a js object

Project documentation: https://www.loom.com/share/bd97cd3b476d4e4d87708be5b5991141

Note for the next code reviewer: Hi! All the requested revisions have been done, except for the implementation of the Cocogoose font, as this is not a free-to-distribute font and not available in Google fonts? Also, the capstone requirements suggested using Lato as a free font. Is this all right? Please advise. Thank you! :)


Clip Audio Perturbations in Range

Description
This PR fixes the issue of audio perturbations going out of range. Using art/attacks/poisoning/perturbations/audio_perturbations.py, triggers can be added to audio signals. The issue was that after adding a trigger, the audio signal could go beyond the range of [-1.0, 1.0]. This PR fixes this issue by clipping the triggered signal to [-1.0, 1.0]. It also adds a unit test to ensure that the triggered signal lies within the range [-1.0, 1.0].
Fixes #2002
Type of change
Please check all relevant options.

[X] Improvement (non-breaking)
[X] Bug fix (non-breaking)
[ ] New feature (non-breaking)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Testing
Please describe the tests that you ran to verify your changes. Consider listing any relevant details of your test configuration.

[ ] Test A
[ ] Test B

Test Configuration:

OS
Python version
ART version or commit number
TensorFlow / Keras / PyTorch / MXNet version

Checklist

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[X] I have commented my code
[ ] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[X] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes

Codecov Report

Merging #2016 (34782a5) into dev_1.13.1 (22af105) will decrease coverage by 54.35%.
The diff coverage is 0.00%.

:exclamation: Current head 34782a5 differs from pull request most recent head 2103e9d. Consider uploading reports for the commit 2103e9d to get more accurate results

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more

@@               Coverage Diff               @@
##           dev_1.13.1    #2016       +/-   ##
===============================================
- Coverage       85.42%   31.08%   -54.35%
===============================================
  Files             290      290
  Lines           25446    25444        -2
  Branches         4576     4254      -322
===============================================
- Hits            21738     7910    -13828
- Misses           2539    17100    +14561
+ Partials         1169      434      -735

Impacted Files
Coverage Δ

...cks/poisoning/perturbations/audio_perturbations.py
9.61% <0.00%> (-76.39%)
:arrow_down:

art/estimators/object_detection/utils.py
0.00% <0.00%> (-100.00%)
:arrow_down:

art/attacks/evasion/shapeshifter.py
5.89% <0.00%> (-93.30%)
:arrow_down:

art/attacks/evasion/carlini.py
7.55% <0.00%> (-86.74%)
:arrow_down:

...rt/defences/detector/poison/clustering_analyzer.py
8.22% <0.00%> (-86.71%)
:arrow_down:

art/attacks/evasion/pe_malware_attack.py
14.28% <0.00%> (-84.80%)
:arrow_down:

art/attacks/evasion/square_attack.py
10.32% <0.00%> (-84.04%)
:arrow_down:

...ces/detector/evasion/subsetscanning/scanningops.py
11.76% <0.00%> (-83.89%)
:arrow_down:

art/attacks/evasion/wasserstein.py
11.94% <0.00%> (-83.28%)
:arrow_down:

art/attacks/evasion/elastic_net.py
17.88% <0.00%> (-81.46%)
:arrow_down:

... and 196 more


.bss sections don't always seem to be zeroed

I was poking around and noticed that an uninitialized static in a module I was using wasn't properly being zeroed. I've produced an example in a branch of mine called bss-issue: https://github.com/gerow/toaruos/tree/bss-issue
Curiously, the .bss section in bss_test.ko seems to be of Size 0:
$ readelf -S hdd/mod/bss_test.ko
There are 15 section headers, starting at offset 0x204:

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000<PHONE_NUMBER>00 00      0   0  0
  [ 1] .text             PROGBITS        00000000<PHONE_NUMBER>58 00  AX  0   0 16
  [ 2] .rel.text         REL             00000000 00061c 000028 08     13   1  4
  [ 3] .data             PROGBITS        00000000<PHONE_NUMBER>18 00  WA  0   0  4
  [ 4] .rel.data         REL             00000000<PHONE_NUMBER>30 08     13   3  4
  [ 5] .bss              NOBITS          00000000 0000b0 000000 00  WA  0   0  4
  [ 6] .rodata.str1.1    PROGBITS        00000000 0000b0 000018 01 AMS  0   0  1
  [ 7] moddeps           PROGBITS        00000000 0000c8 00000b 00  WA  0   0  1
  [ 8] .rodata.str1.4    PROGBITS        00000000 0000d4 000031 01 AMS  0   0  4
  [ 9] .comment          PROGBITS        00000000<PHONE_NUMBER>12 01  MS  0   0  1
  [10] .eh_frame         PROGBITS        00000000<PHONE_NUMBER>78 00   A  0   0  4
  [11] .rel.eh_frame     REL             00000000<PHONE_NUMBER>18 08     13  10  4
  [12] .shstrtab         STRTAB          00000000<PHONE_NUMBER>71 00      0   0  1
  [13] .symtab           SYMTAB          00000000 00045c 000130 10     14  15  4
  [14] .strtab           STRTAB          00000000 00058c 00008f 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings)
  I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)
  O (extra OS processing required) o (OS specific), p (processor specific)

Is the .bss section supposed to have a size, or is there some magic going on that I'm unaware of? Either way, the fact that sometimes these statics are nonzero is a bit troubling.

hey, what do ya know, we've actually got a TODO for this: https://github.com/klange/toaruos/blob/strawberry-dev/kernel/sys/module.c#L61

Huh, I remembered seeing that but assumed that TODO was left in on accident since this part of the module code appears to be attempting to load NOBITS types properly:
https://github.com/klange/toaruos/blob/strawberry-dev/kernel/sys/module.c#L130-L132

I bet that malloc probably needs to be page aligned...

Perhaps. I added a debug line to print the size of that section, though, and for my test it seems to be allocating zero memory, which lines up with what readelf is showing above:
[0000000000.063:kernel/main.c:178] NOTICE: Loading a module: 0x00186000:0x0018668c
[0000000000.063:kernel/sys/module.c:131] ERROR: Loading NOBITS sized 0
[0000000000.064:kernel/sys/module.c:171] NOTICE: point bss_value to 0x00186001
[0000000000.064:kernel/sys/module.c:262] NOTICE: Finished loading module bss_test
[0000000000.065:kernel/main.c:181] NOTICE: Loaded: bss_test

It almost seems like it's getting linked improperly. That or the compiler is doing something wonky and putting it in another section.

Ah, this isn't a BSS issue, it's a linking issue.
I did this:
static uint8_t bss_value_a;
uint8_t bss_value_b;
uint8_t bss_value_c = 0;

bss_value_a: 0, 0x002a308d
bss_value_b: 69, 0x0017f001
bss_value_c: 0, 0x002a308c

bss_value_b isn't even in the BSS, I'm pretty sure it's ending up in .text.

18: 00000001     1 OBJECT  GLOBAL DEFAULT  COM bss_value_b
Yeah, we're not loading COM indexes correctly.

And here is where the incorrect behavior is happening: https://github.com/klange/toaruos/blob/strawberry-dev/kernel/sys/module.c#L167-L174
We realize we have a "common" symbol that we haven't set in our internal symbol table yet, so we point it towards... the beginning of the loaded module, without zeroing it.
There are two situations where we can find these common symbols in a module:

A symbol from the kernel that was mistakenly not marked extern in a header. These work out because we check for presence of the symbol in the table before assigning it. See: Several places where we look at kernel version information.
A symbol that was not initialized within the module. Like this. This is definitely wrong, these should at least be zero'd, and ideally should point somewhere better.

The workaround is to always initialize your 0'd stuff to 0, or mark it static. The solution would be to fix these symbol loads.

Right, that index is actually the size of the symbol for these kinds of symbols, so we can put them wherever we want (maybe allocate some common space as we need it). The other option is to reject undefined common symbols, and require explicit zeroing... It's 1:30 AM for me so I'm going to call that it for investigating this.

Sounds good. The workaround is easy enough and the problem seems to be limited just to kernel modules, so this isn't a huge deal. I'll probably see if I can put together a fix eventually.

I think the right approach for handling common symbols would be to just calloc some space for them. We don't have the same situation as a typical linker, which would examine all of the objects to try to find a definition before giving up and zeroing - we have a very strict hierarchy of symbol resolution, so if we see an as-yet undefined common symbol, we immediately know we can zero it and allocate space. I should also go in and fix the handful of kernel symbols that aren't marked extern in headers, to eliminate as many false-positive common symbols as we can.

Thanks!


Add additional parameters to authorization call

I'd like to include an additional query parameter to the call to the authorization url (claims={json_object}. Is this doable at the moment?

I think you are talking about extraQueryPrameter. You can look at that issue #521


Workflow sometimes fails to transition to COMPLETED

Describe the bug
We sometimes see a Workflow in which all the tasks are completed, but still, the workflow doesn't transition to 'COMPLETED'.
Details
Conductor version: 3.16.0
Persistence implementation: Postgres 14.1
Queue implementation: Postgres 14.1
Elastic search 7.17.11
Lock: Redis or Zookeeper??? -> see attached server_config file
server_config.txt
To Reproduce
We only see this very spuriously
Expected behavior
The workflow should transition to 'COMPLETED' when its tasks are done.
Screenshots
Additional context
When we pause the workflow and resume it, it completes.
It is the same as this old bug report on Netflix Conductor

I have the same problem. The more workers there are, the more severe the symptoms become.
I tested it with docker/docker-compose-mysql.yaml on v3.18.0 tag and master branch. When I created 500 workflows, about 20 were not completed. But all tasks were completed normally.

can you share a workflow which shows this behaviour


[path] is not a valid URL

Not sure why, but the extension is no longer working for me. Whenever I hover over a a link, instead of the laconic text it just shows me the URL path (e.g."/pmwiki/pmwiki.php/Main/Trope") followed by "is not a valid URL."

Thanks sm @SavannahJohnston <3 will check this out rn

Hey @SavannahJohnston just checking are you using firefox?

Yes I am. Browser-specific issue eh? Darn.

Don't worry, it was super easy to fix, uploading the update to the store now, thanks for reporting this!

Yay! Thank you! It works now!

Np!


Order-only-prerequisites don't seem to be honoured

Recipe includes an order-only-prerequisite for QTMMSNDM:
MM00200.PGM -- CRTPGM
MM00200.PGM: private TEXT = SNDMIMEF - Send MIME Email processor program
MM00200.PGM: private STGMDL = SNGLVL
MM00200.PGM: MM00200.MODULE STRING_X.SRVPGM TRANSLATE.SRVPGM ER00100.SRVPGM | /QSYS.LIB/QTCP.LIB/QTMMSNDM.SRVPGM***
Message indicates QTMMSNDM will be included:
=== Creating program [MM00200] from modules [MM00200] and service programs [STRING_X TRANSLATE QTMMSNDM]
CRTPGM listing does not include QTMMSNDM
Module      Library              Module      Library              Module      Library              Module      Library
MM00200     *LIBL
Service                                     Service                                     Service
Program     Library     Activation          Program     Library     Activation          Program     Library     Activation
STRING_X    *LIBL       *IMMED              ER00100     *LIBL       *IMMED
TRANSLATE   *LIBL       *IMMED
Compile fails with an unresolved reference:
Unresolved references  . . . . . . . . . . . . :   1
Symbol    Type      Library     Object      Bound       Identifier
0000001A  *MODULE   BLD_XP      MM00200     *YES        QtmmSendMail

First I wonder what the 3 asterisks are after the service program name. Removing them may fix the issue.  Another comment would be if this line:
MM00200.PGM: MM00200.MODULE STRING_X.SRVPGM TRANSLATE.SRVPGM ER00100.SRVPGM | /QSYS.LIB/QTCP.LIB/QTMMSNDM.SRVPGM***
really take two lines in you recipe, then it needs a continuation after the .../QTCP.LIB.  so the line might look like this:
MM00200.PGM: MM00200.MODULE STRING_X.SRVPGM TRANSLATE.SRVPGM ER00100.SRVPGM |
/QSYS.LIB/QTCP.LIB/QTMMSNDM.SRVPGM

The 3 asterisks are a typo left when I applied bold to the line.
That line is a single line in the recipe, it runs onto 2 lines in the comment
Here it is as a code block:
# MM00200.PGM -- CRTPGM
MM00200.PGM: private TEXT = SNDMIMEF - Send MIME Email processor program
MM00200.PGM: private STGMDL = *SNGLVL
MM00200.PGM: MM00200.MODULE STRING_X.SRVPGM TRANSLATE.SRVPGM ER00100.SRVPGM | /QSYS.LIB/QTCP.LIB/QTMMSNDM.SRVPGM

Hmm I have not tried an absolutely qualified SRVPGM like that. Is it an option to add QTCP into the postUsrLibl of the project?  Then that library will be searched for the QTMMSNDM SRVPGM

I added the library and changed the recipe:
"setIBMiEnvCmd": [         "CHGLIBL (QTEMP BLD_XP BLD_XPDB QGPL QTCP) CURLIB(*SAME)"     ]
MM00200.PGM: private TEXT = SNDMIMEF - Send MIME Email processor program MM00200.PGM: private STGMDL = *SNGLVL MM00200.PGM: MM00200.MODULE STRING_X.SRVPGM TRANSLATE.SRVPGM ER00100.SRVPGM | QTMMSNDM.SRVPGM
Now QTMMSNDM is being built:
make: *** No rule to make target 'QTMMSNDM.SRVPGM', needed by 'MM00200.PGM'. make: Target 'MM00200.PGM' not remade because of errors.

OK, some progress then.
I was wondering why you have the pipe | symbol beofre the QTMMSNDM.SRVPGM?
So what library is QTMMSNDM supposed to be found in?
What is the value of CURLIB?
So where are you specifying this CHGLIBL command?
For the environment of the BOB build, it is the settings in iproj.json that determine that.
For example you could put in
  "curlib": "BLD_XP",
  "preUsrlibl": [
    "BLD_XPDB"
  ],

I updated the previous comment to show where CHGLIBL is defined.
The setIBMiEnvCmd is in iproj.json
I am using this as an alternative to using preUsrLibl and postUserLibl.
I prefer the library list to be explicitly defined for every build, rather than massage the user library list.
QTMMSNDM is in library QTCP, the pipe symbol defines it as a dependent service program that is not part of the current project, but must exist for the build to complete.

It may be that we have not yet encountered the | option and we have to do some more work to support it.
Thanks for bringing it to our attention


remove clean cache

Ⅰ. Describe what this PR does
Ⅱ. Does this pull request fix one issue?

Ⅲ. List the added test cases (unit test/integration test) if any, please explain if no tests are needed.
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

Merging #711 (a7a98ff) into master (a560022) will decrease coverage by 0.00%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #711      +/-   ##
==========================================
- Coverage   16.73%   16.72%   -0.01%
==========================================
  Files          69       69
  Lines        3012     3013       +1
==========================================
  Hits          504      504
- Misses       2456     2458       +2
+ Partials       52       51       -1

Impacted Files
Coverage Δ

pkg/ddc/alluxio/runtime_info.go
3.12% <0.00%> (-2.44%)
:arrow_down:

pkg/ddc/alluxio/node.go
0.00% <0.00%> (ø)

pkg/ddc/alluxio/engine.go
0.00% <0.00%> (ø)

pkg/ddc/alluxio/shutdown.go
0.00% <0.00%> (ø)

pkg/ddc/alluxio/depericated_label.go

pkg/ddc/alluxio/deprecated_label.go
0.00% <0.00%> (ø)

pkg/ddc/base/runtime.go
73.21% <0.00%> (+2.52%)
:arrow_up:

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 a560022...a7a98ff. Read the comment docs.


[MINOR] Refactor hive realtime config to extend from HoodieConfig

Tips

Thank you very much for contributing to Apache Hudi.
Please review https://hudi.apache.org/contributing.html before opening a pull request.

What is the purpose of the pull request
(For example: This pull request adds quick-start document.)
Brief change log
(for example:)

Modify AnnotationLocation checkstyle rule in checkstyle.xml

Verify this pull request
(Please pick either of the following options)
This pull request is a trivial rework / code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end.
Added HoodieClientWriteTest to verify the change.
Manually verified the change by running a job locally.

Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

Codecov Report

Merging #3307 (a7c7c75) into master (a086d25) will increase coverage by 4.09%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #3307      +/-   ##
============================================
+ Coverage     47.74%   51.83%   +4.09%
+ Complexity     5591      428    -5163
============================================
  Files           938       67     -871
  Lines         41823     3098   -38725
  Branches       4213      335    -3878
============================================
- Hits          19968     1606   -18362
+ Misses        20070     1350   -18720
+ Partials       1785      142    -1643

Flag
Coverage Δ

hudicli
?

hudiclient
?

hudicommon
?

hudiflink
?

hudihadoopmr
?

hudisparkdatasource
?

hudisync
?

huditimelineservice
?

hudiutilities
51.83% <ø> (-8.04%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...ies/exception/HoodieSnapshotExporterException.java
0.00% <0.00%> (-100.00%)
:arrow_down:

.../apache/hudi/utilities/HoodieSnapshotExporter.java
5.17% <0.00%> (-83.63%)
:arrow_down:

...hudi/utilities/schema/JdbcbasedSchemaProvider.java
0.00% <0.00%> (-72.23%)
:arrow_down:

...org/apache/hudi/utilities/HDFSParquetImporter.java
0.00% <0.00%> (-71.82%)
:arrow_down:

...he/hudi/utilities/transform/AWSDmsTransformer.java
0.00% <0.00%> (-66.67%)
:arrow_down:

...in/java/org/apache/hudi/utilities/UtilHelpers.java
44.18% <0.00%> (-23.84%)
:arrow_down:

...rg/apache/hudi/utilities/HoodieSnapshotCopier.java
0.00% <0.00%> (-13.80%)
:arrow_down:

...apache/hudi/utilities/deltastreamer/DeltaSync.java
73.10% <0.00%> (-0.32%)
:arrow_down:

...he/hudi/table/action/clean/PartitionCleanStat.java

...che/hudi/client/utils/MetadataConversionUtils.java

... and 863 more

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 a086d25...a7c7c75. Read the comment docs.

@leoluan2009 do you still have bandwidth to fix this PR?


Howto integrate with immutables.org?

Do you have a starter/docs on howto integrate with immutable.org beans?

from what I can recall it should just work like that, sfm should recognize the builder and use it.
have you encountered any issue?

there is a sample projects there https://github.com/arnaudroger/SimpleFlatMapper/tree/master/sfm-test-immutables for testing

Great - it works very well ootb for a row -> immutable bean - but when I have a join between two tables, I basically need a two-fold mapping, like this:
        ImmutableMetaData metaData = entry.getKey().into(ImmutableMetaData.class);
        ImmutableLobData ild = ImmutableLobData.builder(); // will fail here due to build() being called
        return entry.getValue().get(0).into(ild).withMetaData(metaData).

however - this fails because the build() is called by the library (and not all required attributes are set).
Would it be possible to adapt it to use the builder - so that the builder could be returned which I could add more attributes to, and then I call build() myself?

so you can get the library to instantiate the Builder instead of the value. it requires a bit more work because it won't figure out by itself how to instantiate the builder but it goes as follow
        final ClassMeta<ImmutableFoobarValue.Builder> meta =
                mapperFactory
                        .getClassMetaWithExtraInstantiator(
                                ImmutableFoobarValue.Builder.class,
                                ImmutableFoobarValue.class.getMethod("builder"));
        JdbcMapper<ImmutableFoobarValue.Builder> mapper = JdbcMapperFactory.newInstance().newMapper(meta);

the idea to instantiate the meta with the specified instantiator.
I'm not really sure if that solves your problem there?

It would be really nice to have automatic integration so to not need to define the static builder method or the extra instantiatior.

would need to look, would need to scan the enclosing class for builder method might be possible

just pushed 3.2.0 out it should just work now with
JdbcMapper<ImmutableFoobarValue.Builder> mapper = JdbcMapperFactory.newInstance().newMapper(ImmutableFoobarValue.Builder.class);

This is very nice, thanks for the quick response. Unfortunately, now I see I misread the issue. What I would like to do is to use the interface and have sfm use the immutable implementation automatically:
@Value.Immutable
public interface ReallyUsefulInformation {
    String info();
}

public interface ReallyUsefulInformationDao {
    @SqlQuery("...")
    ReallyUsefulInformation getReallyUsefulInformation();
}

Maybe I could help you build sfm-immutables to actually detect @Value.Immutable and use the generated immutable class?
This is the error I get:
org.simpleflatmapper.map.MapperBuildingException: Could not find eligible property for 'info' on  interface ...ReallyUsefulInformation not found  See https://github.com/arnaudroger/SimpleFlatMapper/wiki/Errors_PROPERTY_NOT_FOUND
	at org.simpleflatmapper.map.error.RethrowMapperBuilderErrorHandler.propertyNotFound(RethrowMapperBuilderErrorHandler.java:26)
	at org.simpleflatmapper.map.mapper.PropertyMappingsBuilder._addProperty(PropertyMappingsBuilder.java:105)
	at org.simpleflatmapper.map.mapper.PropertyMappingsBuilder.addProperty(PropertyMappingsBuilder.java:69)
	at org.simpleflatmapper.map.mapper.DefaultConstantSourceMapperBuilder.addMapping(DefaultConstantSourceMapperBuilder.java:159)
	at org.simpleflatmapper.map.mapper.SetRowMapperBuilderImpl.addMapping(SetRowMapperBuilderImpl.java:206)
	at org.simpleflatmapper.map.mapper.MapperBuilder.addMapping(MapperBuilder.java:142)
	at org.simpleflatmapper.map.mapper.MapperBuilder.addMapping(MapperBuilder.java:152)
	at org.simpleflatmapper.jdbc.JdbcMapperFactory$SetRowMapperFactory.newInstance(JdbcMapperFactory.java:344)
	at org.simpleflatmapper.jdbc.JdbcMapperFactory$SetRowMapperFactory.newInstance(JdbcMapperFactory.java:332)
	at org.simpleflatmapper.map.mapper.DynamicSetRowMapper.getMapper(DynamicSetRowMapper.java:104)
	at org.simpleflatmapper.jdbc.JdbcMapperFactory$DynamicJdbcSetRowMapper.getMapper(JdbcMapperFactory.java:299)
	at org.simpleflatmapper.jdbi3.DynamicRowMapper.specialize(DynamicRowMapper.java:25)
	at org.jdbi.v3.core.result.ResultSetResultIterator.<init>(ResultSetResultIterator.java:38)
	at org.jdbi.v3.core.result.ResultIterable.lambda$of$0(ResultIterable.java:53)
	at org.jdbi.v3.core.result.ResultIterable.findFirst(ResultIterable.java:116)
	at org.jdbi.v3.sqlobject.statement.internal.ResultReturner$CollectedResultReturner.mappedResult(ResultReturner.java:276)
	at org.jdbi.v3.sqlobject.statement.internal.SqlQueryHandler.lambda$configureReturner$0(SqlQueryHandler.java:54)
	at org.jdbi.v3.sqlobject.statement.internal.CustomizingStatementHandler.invoke(CustomizingStatementHandler.java:155)
	at org.jdbi.v3.sqlobject.statement.internal.SqlQueryHandler.invoke(SqlQueryHandler.java:26)
	at org.jdbi.v3.sqlobject.SqlObjectFactory.lambda$null$13(SqlObjectFactory.java:158)
	at org.jdbi.v3.core.internal.JdbiThreadLocals.invokeInContext(JdbiThreadLocals.java:27)
	at org.jdbi.v3.core.LazyHandleSupplier.lambda$invokeInContext$1(LazyHandleSupplier.java:72)
	at org.jdbi.v3.core.internal.JdbiThreadLocals.invokeInContext(JdbiThreadLocals.java:27)
	at org.jdbi.v3.core.LazyHandleSupplier.invokeInContext(LazyHandleSupplier.java:71)
	at org.jdbi.v3.sqlobject.SqlObjectFactory.lambda$createInvocationHandler$14(SqlObjectFactory.java:157)
	at org.jdbi.v3.core.OnDemandExtensions.invoke(OnDemandExtensions.java:76)
	at org.jdbi.v3.core.OnDemandExtensions.lambda$null$0(OnDemandExtensions.java:63)
	at org.jdbi.v3.core.internal.JdbiThreadLocals.invokeInContext(JdbiThreadLocals.java:27)
	at org.jdbi.v3.core.OnDemandExtensions.lambda$null$1(OnDemandExtensions.java:62)
	at org.jdbi.v3.core.Jdbi.withExtension(Jdbi.java:439)
	at org.jdbi.v3.core.OnDemandExtensions.lambda$create$2(OnDemandExtensions.java:61)
	at com.sun.proxy.$Proxy42.getReallyUsefulInformation(Unknown Source)
	at ...ReallyUsefulInformationFacade.getReallyUsefulInformation(ReallyUsefulInformationFacade.java:18)
...

that might be possible, it prob would be a different module if it needs dep to immutable library
create ticket https://github.com/arnaudroger/SimpleFlatMapper/issues/609