Added simple summary output

The build process takes time, and instead of having to scroll through a lot of text, I thought it would be nice to have short summary.
Report file looks like the following
built:
- {pakage_name: ilastik-meta, recipe_build_string: 0_g1355659, recipe_version: 1.3.1b2}
- {pakage_name: ilastik-launch, recipe_build_string: '7', recipe_version: '0.1'}
- {pakage_name: ilastik-dependencies-no-solvers, recipe_build_string: '0', recipe_version: 1.3.1}
- {pakage_name: ilastik-dependencies, recipe_build_string: '0', recipe_version: 1.3.1}
found:
- {pakage_name: lemon, recipe_build_string: '5', recipe_version: 1.2.4}
- {pakage_name: vigra, recipe_build_string: np114py36_8_gfb42744, recipe_version: 1.11.1.post8}
- {pakage_name: dpct, recipe_build_string: py36_2_gc6745f0, recipe_version: 1.2.post18}
- {pakage_name: yapsy, recipe_build_string: py36_0, recipe_version: 1.10.423}
- {pakage_name: marching_cubes, recipe_build_string: py36_2_g372a1b5, recipe_version: 0.0.post37}
- {pakage_name: hytra, recipe_build_string: py36_0_g52df98b, recipe_version: 1.1.4.post21}
- {pakage_name: ilastik-feature-selection, recipe_build_string: py36_0_g413714a, recipe_version: 0.123.post13}
- {pakage_name: ilastiktools, recipe_build_string: np114py36_2_gae9e090, recipe_version: 0.2.post20}
- {pakage_name: ilastikrag, recipe_build_string: py36_0_g894ba23, recipe_version: 0.1.3.post8}
- {pakage_name: mamutexport, recipe_build_string: py36_0_g5023d4d, recipe_version: 0.2.1.post5}
- {pakage_name: tifffile, recipe_build_string: np114py36_2_g7c3bb9e, recipe_version: 0.4.post2}
- {pakage_name: pytiff, recipe_build_string: np114py36_1_g60a58ae, recipe_version: 0.7.2}
- {pakage_name: numpy-allocation-tracking, recipe_build_string: py36np114_0_g6300784,
  recipe_version: 0.2.post4}
- {pakage_name: wsdt, recipe_build_string: py36_0_g76f938f, recipe_version: 0.2.post16}
- {pakage_name: fastfilters, recipe_build_string: py36_1_gce61889, recipe_version: 0.2.6.post13}
- {pakage_name: nifty, recipe_build_string: py36_2_g13cedaf, recipe_version: 0.18.1.post21}
- {pakage_name: opengm-structured-learning-headers, recipe_build_string: 5_ga0797cd, recipe_version: 2.3.4}
- {pakage_name: cplex-shared, recipe_build_string: '9', recipe_version: '0.1'}
- {pakage_name: gurobi-symlink, recipe_build_string: '3', recipe_version: '0.1'}
- {pakage_name: multi-hypotheses-tracking-with-gurobi, recipe_build_string: py36_2_gb63485b,
  recipe_version: 1.1.3.post34}
- {pakage_name: multi-hypotheses-tracking-with-cplex, recipe_build_string: py36_2_gb63485b,
  recipe_version: 1.1.3.post34}
- {pakage_name: nifty-with-gurobi, recipe_build_string: py36_2_g13cedaf, recipe_version: 0.18.1.post21}
- {pakage_name: nifty-with-cplex, recipe_build_string: py36_2_g13cedaf, recipe_version: 0.18.1.post21}
recipe_specs_path: ilastik-recipe-specs.yaml
selected_recipies: []
duration: '0:16:49.249799'
end_time: '2018-05-30T15:50:02'
start_time: '2018-05-30T15:33:13'

Oh.. I have another idea, we might add in: Check if such a summary file exists and then skip those packages (in a group 'found_locally' or something).
This would avoid the hastle of uncommenting everything one has already built to avoid the long wait for the conda render command to finish.

Didn't you also have the idea of a --skip-until option. @FynnBe ? When it comes to not check certain builds I would prefer that - I think it's harder to get something wrong with this than with the possibly present yaml report. I mean in the end, we always go through the list in order anyway.

Yes, we should implement at least one of these features, I think

Hey @stuarteberg , do you have any opinion on this? It doesn't change the default behavior, it just adds an output file and gives you the option to start from a certain recipe by giving the --start-from argument, which I already found super useful.

I love it!


6.0.0 - Remove BuiltReducer class and the generated mixin

Removes the BuiltReducer interface and the generated BuiltReducer implementation in favor of building a reducer function and passing it to the store at instantiation.
Reasoning:

This decouples your models and reducers.
Requires less generated code.
Reducing requires less map look ups. Previously N map look ups were required where N was the number of BuiltReducers in your state tree. Now only 1 map look up is required per action dispatched.

Codecov Report

Merging #29 into master will decrease coverage by 6.1%.
The diff coverage is 66.66%.

@@            Coverage Diff            @@
##           master     #29      +/-   ##
=========================================
- Coverage    98.5%   92.4%   -6.11%
=========================================
  Files           6       6
  Lines          67      79      +12
=========================================
+ Hits           66      73       +7
- Misses          1       6       +5

Impacted Files
Coverage Δ

lib/src/state_transformer.dart
100% <ø> (ø)
:arrow_up:

lib/src/store_change.dart
100% <ø> (ø)
:arrow_up:

lib/src/middleware.dart
100% <ø> (ø)
:arrow_up:

lib/src/store.dart
87.5% <20%> (-12.5%)
:arrow_down:

lib/src/reducer_builder.dart
90% <90%> (ø)

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 8ea8550...18cdeb3. Read the comment docs.


MongoError: could not authenticate

Trying to connect to Mongo by using a connection string that uses username and password gives me the following error:

MongoError: could not authenticate

Using the same connection string with mongojs library I can successfully connect to Mongo.
Any help is welcome.

Similar issue is already created here #35. So, maybe you want to close this issue and follow that I've mentioned.


Add /me endpoint that returns user's info

This adds the '/me' endpoint and returns the requested info. Is there any security risk in giving back the access token in json @coverbeck?

Is there any security risk in giving back the access token in json @coverbeck?

I don't think so. There is a requirement to surface the token in the UI, DataBiosphere/cgp-boardwalk/65, so I think we have to return it.
Also, since we only support https, the body is not visible.
BTW, the access token already is in the cookie, as you know, and not encrypted, so this offers the same level of safety/danger as that.

BTW, the access token already is in the cookie, as you know, and not encrypted, so this offers the same level of safety/danger as that.

Oh yeah. duh.


Permit urls with port numbers that don't have four digits

The current code for valid_url requires 4-digit port numbers.  But port 80 and port 443. Are common.  I've submitted a PR, #31 .

Many thanks.


Room counter isn't working

Describe the bug
When I'm not in a room, the room counter shows a wrong number of people inside.
To Reproduce
Steps to reproduce the behavior:

Enter Dogehouse and login;
Watch room counter;
Enter into a room, and check that the number of people inside isn't the same as the counter shown before.

Expected behavior
The counter should have the correct number of people inside a room.
Screenshots
I recorded a video (without audio), that shows the behaviour of the counter:
https://user-images.githubusercontent.com/17125543/111390994-9e66d100-86ab-11eb-8bd1-cd20dab8c96d.mp4
What device are you on?
Chrome 89.0.4389.90 (64-bit) in Linux Mint 19.3.
Additional context
When I'm in a room, the counter works fine.

could be this:

Servers we're restarting or down for one reason or another
People left the room and the following events could have occurred

// I could be wrong about this but its a start
`
# the room is decremented based on this new_people_list
# so if this is the case this would never be called and the room would not be decremented
new_people_list = Enum.filter(room.peoplePreviewList, fn x -> x.id != user_id end)
      decrement_room_people_count(
        room.id,
        new_people_list # decremented based on this list
      )

`

If you enter the room and then go back with home button, counter shows correct value, When you leave room with "Leave room" it's borked again

I think this has been fixed


refactor(thirdweb): streamline exports in tests by removing unused DEFAULT_MAX_BLOCKS_WAIT_TIME

Problem solved
Short description of the bug fixed or feature added
Changes made

[ ] Public API changes: list the public API changes made if any
[ ] Internal API changes: explain the internal logic changes

How to test

[ ] Automated tests: link to unit test file
[ ] Manual tests: step by step instructions on how to test

Contributor NFT
Paste in your wallet address below and we will airdrop you a special NFT when your pull request is merged.
Address:

PR-Codex overview
This PR removes DEFAULT_MAX_BLOCKS_WAIT_TIME import and focuses on simplifying the test files by importing only necessary functions.
Detailed summary

Removed DEFAULT_MAX_BLOCKS_WAIT_TIME import from test files.
Imported only necessary functions waitForBundle and waitForReceipt.
Simplified the test files for clarity and readability.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

#3739  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @joaquim-verges and the rest of your teammates on  Graphite


@conda-forge-admin,please add bot automerge

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added bot automerge in conda-forge/flytekitplugins-modin-feedstock#3.


Can't create ride offer

Hi,
I'm trying to create a ride offer using api, but I'm always getting state as "offer-rejected" as you can see on image. Any ideas on how to fix it?

looking at the screen shot i see you sent a lat/lng near Israel

https://www.google.com/maps/place/31°00'00.0"N+34°00'00.0"E/@30.8689605,32.632704,7.31z/data=!4m4!3m3!8m2!3d31!4d34?entry=ttu
in order for the offer to be created and accepted, you need to have an active driver in environment and the given radius.

Hi @AlonAF800, thanks for your answer. Even with lat/lng covered it's not working.
curl --location 'https://api.autofleet.io/api/v1/offers' \
--header 'Content-Type: application/json' \
--header 'Authorization: ••••••' \
--data '{
  "rideType": "passenger",
  "pooling": "active",
  "stopPoints": [
    {
      "type": "pickup",
      "verificationMethods": [
        {
          "type": "photo"
        }
      ],
      "lat": 48.4026688,
      "lng": -89.2611372
    },
    {
      "type": "dropoff",
      "lat": 48.4180285,
      "lng": -89.2629133
    }
  ],
  "demandSourceId": "not-displayed",
  "numberOfPassengers": 1,
  "businessModelId": "not-displayed"
}'

This is the answer
{
    "id": "3b09f99c-128f-48be-9952-9ecda1a089be",
    "state": "offer-rejected",
    "rideType": "passenger",
    "externalId": null,
    "demandSourceId": "not-displayed",
    "stopPoints": [
        {
            "id": "38e85208-3654-41cf-8386-8ca2098f820f",
            "state": "pending",
            "beforeTime": null,
            "afterTime": null,
            "lat": "48.4026688",
            "lng": "-89.2611372",
            "description": null,
            "externalId": null,
            "contactPersonName": null,
            "contactPersonAvatar": null,
            "orderInParent": 0,
            "etaAtMatching": null,
            "type": "pickup",
            "notes": null,
            "webhookUrl": null,
            "packageId": null,
            "packageDescription": null,
            "numberOfItems": null,
            "verificationMethods": [
                {
                    "type": "photo"
                }
            ],
            "contactPersonPhone": null,
            "maskedContactPersonPhoneNumber": null,
            "maskedDriverPhoneNumber": null,
            "stopDurationSec": 0,
            "additionalStopDurationSec": 0,
            "cargoWeight": null,
            "cargoVolume": null,
            "customCargoUnits": {},
            "createdAt": "2024-07-10T14:47:44.190Z",
            "preferences": {}
        },
        {
            "id": "61722504-00ab-482f-bbd3-8f283e753120",
            "state": "pending",
            "beforeTime": null,
            "afterTime": null,
            "lat": "48.4180285",
            "lng": "-89.2629133",
            "description": null,
            "externalId": null,
            "contactPersonName": null,
            "contactPersonAvatar": null,
            "orderInParent": 1,
            "etaAtMatching": null,
            "type": "dropoff",
            "notes": null,
            "webhookUrl": null,
            "packageId": null,
            "packageDescription": null,
            "numberOfItems": null,
            "verificationMethods": null,
            "contactPersonPhone": null,
            "maskedContactPersonPhoneNumber": null,
            "maskedDriverPhoneNumber": null,
            "stopDurationSec": 0,
            "additionalStopDurationSec": 0,
            "cargoWeight": null,
            "cargoVolume": null,
            "customCargoUnits": {},
            "createdAt": "2024-07-10T14:47:44.190Z",
            "preferences": {}
        }
    ],
    "vehicleId": null,
    "driverId": null,
    "fleetId": null,
    "businessModelId": "not-shown",
    "rating": null,
    "priceCurrency": "CAD",
    "priceAmount": 15.14,
    "plannedDistance": 4000,
    "webhookUrl": null,
    "pooling": "active",
    "numberOfPassengers": 1,
    "createdAt": "2024-07-10T14:47:44.181Z",
    "scheduledTo": null,
    "predecessorId": null,
    "constraints": {
        "vehicleList": {
            "include": [],
            "exclude": [],
            "required": []
        },
        "vendorList": {
            "include": [],
            "exclude": [],
            "required": []
        },
        "vehicleClassList": {
            "include": [],
            "exclude": [],
            "required": []
        },
        "vehicleLabels": {
            "include": [],
            "exclude": [],
            "required": []
        },
        "driverList": {
            "include": [],
            "exclude": [],
            "required": []
        }
    },
    "successorId": null,
    "offer": null,
    "rejectionReason": null,
    "lastMatchAttempt": null,
    "lastMatchingCycleFirstAttempt": null,
    "audits": [],
    "cancelable": false,
    "unassignableByDriver": false,
    "labels": [],
    "matchingType": "automatic",
    "dispatchType": "automatic",
    "disableMatchingRetry": false,
    "priceCalculationId": "b52cd189-4f2f-4666-ae81-45ca4ad3da77",
    "payment": null,
    "serviceId": null,
    "estimationId": null,
    "clientId": null,
    "matchingRetryDurationSec": null,
    "cancellationReasonId": null,
    "rideTemplateId": null,
    "dispatchedAt": null,
    "vendorId": null,
    "origin": null,
    "customFields": {},
    "showInOpportunities": true,
    "planningJobId": null,
    "businessAccountId": null
}

We still can't get data from this endpoint.
This is the x-trace-id: kCMSyVv_fD

i will look into it @otaviolbarbosa thanks

@otaviolbarbosa
errors: [
0: "Demand Source <> not found or associated to the selected business model"
]

the reason is a mismatch between the demand source id and the business model id on the api body payload.
the demand source id you used is of your production app
the business model id you used is of your testing app
It needs to be either both testing or both prod.


Added a fastForward migration method

Moving this code to its own PR as there were no comments on it when linked in #279 and as new PR:s like #513 that relates to migrations are getting submitted.
For now we should probably keep the general discussion about how to move forward with migrations in #279 and only have comments related to the code of specific PR in here. We might need many PR:s like this one to solve #279 as every contributor needs their own, but thats okay I think.
Also: This PR only adds a knex.migrate.fastForward() and refactors the migration system to minimize duplicated code in that method – the CLI tool requested in #279 has not been added – the CLI should in my opinion wait until a knex.migrate.fastForward() has been accepted.
What does this PR add?
This PR adds a knex.migrate.fastForward() method which just like knex.migrate.latest() creates a new batch and includes all non-run migrations in it, but unlike knex.migrate.latest() it doesn't actually execute any of the migrations.
I myself am interested in pairing knex.migrate.fastForward() with my projects' installation scripts to ensure that no old migration scripts gets run on fresh new installations – see eg. the scripts of my one-page project and WebMention project.

Ping @bendrucker I guess

Will review as soon as I have a chance. I'm going to try to captain getting things a little more organized around here. Stay tuned.

@bendrucker Fixed the failing tests now (but Travis CI seems to have an unrelated problem with SQLite at the moment?).

Yeah I just disabled 0.11 in https://github.com/tgriesser/knex/commit/342766cb1bf17c4e2cedd7dba9247499f7eceed7 because of SQLite. Not sure what's up. I just kicked off a fresh run.

Indeed it was. Passing.

Rebased on top of master so that this PR stays up to date.
How to use this new method:
// Installation script to set up application schema

// First set up the tables using up to date definitions...
knex.schema.createTable('foo', function (table) {
  table.string('id').primary();
  table.string('bar').notNullable();
}).then(function () {
  // ...and then mark the existing unneeded migrations as done
  return knex.migrate.fastForward();
});

As you see – this will ensure that only future migrations that are relevant to the current installation will be run when the next migration is run and not irrelevant migrations that are related to changes that happened before the current installation was made.
Don't want to be a pain @bendrucker, but some feedback on how to move this forward would be nice :smiley:

See https://github.com/knex/arctic
Pretty much everything but the public API is changing. A big issue I'd like to address is having a better test suite with a strong split between unit and integration.
And I still need to decide what the API is going to look like. There's too much overlap between a to method and fastForward. I'm personally partial to an array-like method, knex.migrate.to([migration, index]). migration, per #513, would be a timestamp or full name of a migration. index, a la [].slice, would be a Number specifying a direction from the specified migration to move for the actual migration. So rather than ship migrate.before(ts) right away, you'd do migrate.to(ts, -1). And if !arguments.length, it goes straight to the last migration.

@bendrucker Regarding the API – the reason why to() and fastForward() isn't the same in this PR is since to() will actually execute each individual migration while fastForward() will just mark them as complete.
So in your example, if there were to be just a to() then it would have to be knex.migrate.to([migration, index, fastForward]) or something – and three optional parameters quite much – and to replicate what I did with knex.migrate.fastForward() in my above example one would then have to call knex.migrate.to(undefined, undefined, true) and I think a shortcut like  knex.migrate.fastForward() would be preferable then, even if knex.migrate.to() were to support fast-forwarding as well.

In regards to https://github.com/knex/arctic – if we can decide on an API then I can try to make a PR for it to that project.

Right you are. There's still a ways to go on the internal methods around listing the files and changing the database. I'll let you know when there's enough progress.

Hi
since migrate.to and migrate.before are not being implemented, what would be the best practice of testing validity of my migration?

Hi, I started going through old pull requests and get them merged if possible or close otherwise if they are not going to be finished.
@voxpelli do you think this is still relevant and useful feature to have? If so, conflicts needs to be fixed and documentation of the new feature added to index.html.
ps. I would rather just close this pull request and forget about this feature, since it is really marginal case, where people needs it.
Only case I was thinking that this is needed is if you copy just schema without data from other DB to new installation (would cause migrations table data not to be moved). IMO one should just run migrations for creating new schema instead of copying schema from some database dump. Or if you copy schema from DB dump, you should copy also migrations table rows so that migration table will be uptodate with schema.

@elhigu I still believe this is relevant and I have continued down this route in https://github.com/voxpelli/node-knex-migrator-extension which is basically a hackish way to apply this PR at runtime to the knex migrator.
I would happily move away from that patching and update this PR to incorporate any experiences found in the deployment of that tool if that would help move this PR forward.
One question though: Is the plan still to move to https://github.com/knex/arctic and thus that any feature additions to the migrator should still be targeting that as the last feedback from @bendrucker stated or is the plan now to keep the current migrator for the near future?
And regarding this being a marginal case: I very much disagree about that.
I think that a schema definition for a fresh install is a distinctly different use case from migrations of older schema definitions to new ones.
It should always be possible to set up a project by itself, without running all the migrations, and many tools does this – such as eg. Drupal which always on fresh installs sets up the current state of the schema and only runs migrations when it needs to migrate older installs to newer ones. Enabling one to do that is what I'm aiming at with this PR and that's how I currently use it in the above mentioned projects.
tl:dr; This is a DRY way to mark a fresh install as already including all of the migrations that was available at the time of the installation thus enabling projects to do what eg. Drupal does and keep a clear definition of their schema for new installs and leave migrations to just be migrations

@voxpelli that drupal example sounds like schemafile vs. migrations discussion, which to me has not much to do with this fastForward feature (it requires more complete support and syncing migration table data is just one part of it).
In my point of view this feature this is just an easy way to combine any incompatible schema file with migration data that might or might not be valid for it.
That being said, I'm not going to push this pull request down since there has been already collaborator support for this :+1:  Just expressing my view on this matter.
So does this require any additional PR's to be merged? When the conflicts could be fixed and documentation added?
ps. I haven't heard about @bendrucker / arctic for a while

Closing due to inactivity, if someone likes to implement / fix this, please open another PR an link to this. Or if this is finished / tested / documented, it can be reopened.


Sampling event dataset driven of occurrence index

Events on GBIF.org
Events has recently been added to the website as a non advertised test. This implementation need to be evaluated.
Data model

We do not model events anywhere in our data model.
The current implementation is driven of the occurrence index.

Caveats
On event pages we show information about Event date, locations, remarks, sampling protocol and more. But we get this information by doing an occurrence search for an eventId and then looking at the first occurrence we get back. If that occurrence lists information about eventRemarks, samplingProtocol etc we use that as information about the event as a whole.
This has some unwanted consequences.

EventData: occurrences have an eventDate, so does events. They do not need to be the same. The event could have lasted 2 weeks, and the occurrence be from a specific date in that interval. We pretend the occurrence date is the date of the event - thus it might be wrong.
Latitude, longitude: We take the location from the first occurrence. The event might have taken place within a larger area and the occurrence a specific location in that area. We pretend the event location is the same as the first occurrence location. This might be wrong.
List of events: we get the list of events for a dataset, by asking for all occurrences within a dataset and grouping by unique eventIDs. So if there are no occurrences from an event it won't show anywhere on the website. So if I have sampled the same place for 30 years, and the last 10 years have yielded no results, then that data is lost. The list of events might be wrong.
Number of occurrences: we list how many occurrences there is within an event and occurrences for species within an event. We also show charts based on occurrences. But those include absence occurrences and ignores individual count. Both of these seem especially important for sampling event datasets. So when we write speciesA: 10, speciesB: 1 it might actual mean We looked for speciesA 10 times and never saw it and speciesB has been seen 1 time and there was 100 of them. So again it might be wrong.
Parent events: If I understand correctly, then a parentEvent can have occurrences of their own. If that is the case these are ignored as we cannot search the occurrence index for them. So the parentEvent counts might be wrong.
Sampling protocol, remarks etc: We use the first occurrence to deduce these. In theory a publisher could populate the data so that all occurrences within an event had different protocol. That would be bad data as I understand it. If they did so, then the sampling protocol etc could change on a page refresh (because the ordering of the results could be different).

It might also be completely correct all of it, only we don't know.

These caveats have been discused internally and the conclusion was to go live with the current version all the same.


refactor(#772): install bun in build.rs instead of pre_build

/claim #772

refactor: move onnxruntime installation to its own method
refactor: remove bun install from pre_build
refactor: install bun on build.rs

@ologbonowiwi what if npm is not installed?
powershell -c "irm bun.sh/install.ps1 | iex" ?
also can yo uresolve conflict

/approve
amazing work

thanks, @louis030195. next time, I think adding more details to the issue would be good—the work was a bit more than what was described in #772.


All events play in a single tick when using DLL built in release mode

Steps to reproduce:

Export the demo project in release mode
Observe broken
Swap godot-midi DLL out for debug mode version
Observe working

Resolved in #28


install: de-duplicate code in downloadNodeLib() function

Modified the result of processRelease() to return uniform names libUrl,
libPath for Windows in objects named as target platforms (ia32 and x64)
This allows to loop over the target platforms in downloadNodeLib() and to use
the universal names instead of two almost identical code parts with libUrl32,
libPath32 and libUrl64, libPath64 names.

I don't mind this refactor although I consider the changes in process-release to be breaking because that module is usable outside of node-gyp (I've used it myself that way). The change is good, but I'd rather hold this off till v4, which we're close to because of the NVM_* env var removals we need to do.

As I see process-release is not exported from the node-gyp in any way. Thus these changes in the process-release are only details of implementation. And I think no other external projects can rely on internals of node-gyp.

require('node-gyp/lib/process-release')
but anyway, we can break stuff in v4 so whatever

sorry this got stale @pmed, still want to pursue it? if so, rebase to current master and let's take a look

Hi @rvagg
I've rebased it on the master.

thanks @pmed, landed in 03683f09d
it's pretty surprising the duplication lasted this long isn't it? good work.


Fix Jukebox mode

These changes will fix jukebox mode by allowing jukebox mode to be defined when pixelblade is defined, and also re-enable clash button double-click, which is used to select jukebox mode when 2 buttons are enabled.

Thanks lemmingDev for fixing Jukebox and Jason for testing and confirming the changes.


Update README.md

Using customerProductItemVm.title instead of customerProductItemVm.text to be consistent in the examples.
Using productVm.title instead of productVm.id to be consistent in the examples.
Adding new example to show how to use $watch after define a different/custom alias for the controller.
Adding controllerAs definition as part of controller's examples to facilitate understanding of given examples.

agreed with the comments. not aligned with direction of ng practices and ng 1.5 and 2

Thank your for the revision and the comments guys! @johnpapa @gkalpak


TypeError: undefined is not an object (evaluating '$.fn.dropdown.Constructor')

I am trying to use bootstrap-select in a basic HTML page, but I'm getting the following error:
There was an issue retrieving Bootstrap's version. Ensure Bootstrap is being loaded before bootstrap-select and there is no namespace collision. If loading Bootstrap asynchronously, the version may need to be manually specified via $.fn.selectpicker.Constructor.BootstrapVersion.
TypeError: undefined is not an object (evaluating '$.fn.dropdown.Constructor')
(anonymous function) — bootstrap-select.js:379
(anonymous function) — bootstrap-select.js:2734
(anonymous function) — bootstrap-select.js:21
Global Code — bootstrap-select.js:23

I am not loading bootstrap-select asyc, however I am attempting to add the line that was suggested by the error message, but I'm unclear on where and in which file this should be added:
$.fn.selectpicker.Constructor.BootstrapVersion = '4';
I'm not using a framework, I'm just trying to get this working in an HTML page. Do I insert this line into bootstrap-select.js, if so where? Or is it supposed to be an inline script in the HTML document?
Here are the scripts being loaded:
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<link rel="stylesheet" href="now-ui-kit.css">
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="assets/css/bootstrap-select.min.css">
<!-- Latest compiled and minified JavaScript -->
<script src="assets/js/bootstrap-select.js"></script>
<!-- (Optional) Latest compiled and minified JavaScript translation files -->
<script src="assets/js/i18n/defaults-*.min.js"></script>

Simply load it after the last bootstrap-select file.
<script>
$.fn.selectpicker.Constructor.BootstrapVersion = '4';
</script>

I've this issue too, what can it caused and how can i fixed it?

Uncaught TypeError: z.fn.dropdown is undefined
    <anonymous> bootstrap-select.js:3133
    <anonymous> bootstrap-select.js:3152
    <anonymous> bootstrap-select.min.js:8
    <anonymous> bootstrap-select.min.js:8


dotnet user-secrets import

Usage
dotnet user-secrets import [[--id userSecretId]] [-n|--no-overwrite] [OTHER_ID]

Merges user secrets from another user secret collection.

Arguments:
OTHER_ID     The user secrets ID of the collection to import into the current collection.

Options:
 -n|--no-overwrite     User secrets from OTHER_ID do not replace existing secrets with the same key.

Scenarios:
Users that want to change an the ID.
Import from another project that's already configured
Other ideas:
Same behavior can be done with dotnet user-secrets --id OTHER_ID list --json | dotnet user-secrets set, but is less intuitive for users, and doesn't provide a --no-overwrite option.

Closing this as we haven't heard customers asking for this.


Fix build space?

I can't run this myself, but this should fix #132 - and the fix is the same as Bouni/kicad-jlcpcb-tools#492 / Bouni/kicad-jlcpcb-tools#498.
This:

install the requirements first
then maximizes disk space (remove optionally installed, and unused things - e.g. mono, merge tmp space)
checkout as normal

Note:

there are more things that can be dropped, but this seems like enough
this is somewhat temporary, if the disk usage goes over again

@yaqwsx For me this didn't do the trick, but adding this to the workflow file as a step did it:
      - name: Free more Space, Found in https://github.com/actions/runner-images/issues/2840#issuecomment-790492173
        run: |
          sudo rm -rf /usr/share/dotnet
          sudo rm -rf /opt/ghc
          sudo rm -rf "/usr/local/share/boost"
          sudo rm -rf "$AGENT_TOOLSDIRECTORY"

@Bouni great - lmk if you want me to update or just close this if you wanna make a different PR!

Since we already have https://github.com/yaqwsx/jlcparts/commit/7d2d0df453ebbc8e109a67a2ca96ca4aff5667f1 and the updates are working, I suggest closing this PR.


python310Packages.psycopg: fails to install on darwin

Steps To Reproduce
Steps to reproduce the behavior:

nix-env -iA nixpkgs.pgcli

Build log
strip is /nix/store/nq7dispfy6jj8m56963b5w990djs431y-cctools-binutils-darwin-949.0.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/5lyyfvw44wr9fzn1n6fmgj75znvgac0d-python3.10-psycopg-3.0.16/lib
patching script interpreter paths in /nix/store/5lyyfvw44wr9fzn1n6fmgj75znvgac0d-python3.10-psycopg-3.0.16
find: ‘/nix/store/gpmklzz1f2ryfmljjyzaaiys29d633w5-python3.10-psycopg-3.0.16-doc’: No such file or directory
strip is /nix/store/nq7dispfy6jj8m56963b5w990djs431y-cctools-binutils-darwin-949.0.1/bin/strip
Executing pythonRemoveTestsDir
Finished executing pythonRemoveTestsDir
running install tests
no Makefile or custom installCheckPhase, doing nothing
pythonCatchConflictsPhase
pythonRemoveBinBytecodePhase
pythonImportsCheckPhase
Executing pythonImportsCheckPhase
Check whether the following modules can be imported: psycopg
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <lambda>
  File "/nix/store/rs23kn5r3qm96cq26b6bzy2w7rs5r39d-python3-3.10.5/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/nix/store/5lyyfvw44wr9fzn1n6fmgj75znvgac0d-python3.10-psycopg-3.0.16/lib/python3.10/site-packages/psycopg/__init__.py", line 9, in <module>
    from . import pq  # noqa: F401 import early to stabilize side effects
  File "/nix/store/5lyyfvw44wr9fzn1n6fmgj75znvgac0d-python3.10-psycopg-3.0.16/lib/python3.10/site-packages/psycopg/pq/__init__.py", line 114, in <module>
    import_from_libpq()
  File "/nix/store/5lyyfvw44wr9fzn1n6fmgj75znvgac0d-python3.10-psycopg-3.0.16/lib/python3.10/site-packages/psycopg/pq/__init__.py", line 106, in import_from_libpq
    raise ImportError(
ImportError: no pq wrapper available.
Attempts made:
- couldn't import psycopg 'c' implementation: No module named 'psycopg_c'
- couldn't import psycopg 'binary' implementation: No module named 'psycopg_binary'
- couldn't import psycopg 'python' implementation: dlopen(/nix/store/9zzdsi078dfvwk3c8mp0ah4n11qdhbnj-postgresql-14.4-lib/lib/libpq.so, 6): image not found
error: builder for '/nix/store/0mra8pnkgn7800bsdsiji856zvh871ha-python3.10-psycopg-3.0.16.drv' failed with exit code 1
error: 1 dependencies of derivation '/nix/store/yvf9l87k4i5564k79xjfl1291sgxy21d-python3.10-pgspecial-2.0.1.drv' failed to build
error: 1 dependencies of derivation '/nix/store/1rr2x51srx48fa4lkjic6p7047h62is7-python3.10-pgcli-3.4.1.drv' failed to build

(full output here: http://ix.io/47c6)
Additional context
Add any other context about the problem here.
Notify maintainers
@dywedir  @SuperSandro2000

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-darwin"`
 - host os: `Darwin 20.6.0, macOS 10.16`
 - multi-user?: `no`
 - sandbox: `no`
 - version: `nix-env (Nix) 2.10.3`
 - channels(djm): `"home-manager, nixpkgs"`
 - nixpkgs: `/Users/djm/.nix-defexpr/channels/nixpkgs`

The error is not in pgcli but in psycopg which tries to import a .so which does not work under darwin.


changed IBM Operator image tag for RH Mirroring

https://github.ibm.com/IBMPrivateCloud/roadmap/issues/50103


Create new flag: remove first frame

With the Andor camera in Konstanz, we have a problem: the first frame is overexposed. Therefore, we remove that frame in the function /Users/galizia/Documents/Code/Git_code/pyview/view/python_core/io.py we delete that frame, if it has no information (sd=0), or if it is, on average, outside the sd of the first 15 frames.
                imagej_hyperstack = imagej_hyperstack[:,:,1:]
                if metadata_present:
                    SizeT = str(int(meta_info['SizeT']) - 1 )
                    meta_info.update({'SizeT':SizeT})
            # this only works if ALL pixels in the first frame are overexposed
            # therefore, additionally, if first frame is outside the noise
            # defined here as 2 times SD in the first 15 frames
            else: #check condition
                line = imagej_hyperstack.mean(axis=(0,1))
                condition = (line[0] > (np.mean(line[1:15]) + 2*np.std(line[1:15])))
                if condition:
                    imagej_hyperstack = imagej_hyperstack[:,:,1:]
                    if metadata_present:
                        SizeT = str(int(meta_info['SizeT']) - 1 )
                        meta_info.update({'SizeT':SizeT})```

This option should be made transparent with a flag,
and maybe placed into the bleach correction module,
so it can be switched on/off with any setup.

Best place would be:
_init_.py line 102
correct_raw_data

#10 will take care of this


about FLOPS (not issue, but question)

Thank you for sharing awesome model!
I want to know how did you calculated the FLOPS of your model.
Did you use some tools to calculate it?
I would like to appreciate if you could share information about it.
Thank you.

Thank you for your question.
We used fvcore to calculate FLOPs.
It was developed by Facebook Research.
here is the link https://github.com/facebookresearch/fvcore/ .

Thank you for your reply!
I'll try it.
I really appreciate your reply,


Ghost clicking when an n+1 finger starts touching the trackpad.

This is might be be tricky to explain...
I very often trigger un-intentional click events that make me do things I don't want to when using an app or website. I guess this is because my other the fingers tend to rest or hover very close to the trackpad area.
On a mac it's not a problem because: if you have one finger on the trackpad and move your finger around and leave that first finger on the trackpad, the cursor moves as expected and if another finger happens to touch the trackpad, that touch event is ignored until the first finger that started to move the cursor is released.
On windows, it's not the case: you can start moving the cursor around and if any other touch input happens it triggers a click event. This is driving me nuts and it leads to potentially really annoying actions where I delete or do stuff unintentionally (in Outlook mostly)!
Steps to reproduce:

Go to https://github.com/ClementGre/ThreeFingerDragOnWindows/issues/new (as an example) of a UI with two inputs you can click on, the Title input and the Description text area.
Tap on the description text area, to focus on it
With your index finger, press it on the trackpad (don't release) move your finger and move the cursor over the title input, then with another finger tap when the cursor is over the title input. You will see the focus changes to the title input.
Release your index finger.

I get that behaviour on the build-in trackpad of my surface laptop 6 and on my apple magic trackpad 2 on windows.
Is anybody else experiencing this?
If we could have an option to enable (or disable for those who find this is feature and not a bug) that behaviour that would be fantastic and really improve the trackpad experience on windows IMHO.
@ClementGre do you think ThreeFingerDragOnWindows could help with that?

Potentially, this might also help a issue when ending a three finger drag:  when I lift my three fingers up to end a three finger drag, the cursor tend to wiggle a bit (probably because I'm not lifting all my three fingers exactly at the same time?), leading to issues if you try to draw a selection or drag and drop something on a small target.


chore - fixing eslint-scope to a safe version; resolves #656.

Nice work!

Thanks, I think yarn.lock might be updated too


Provide API examples in README

It would be nice to be able to look at this projet's README and immediately know what value is going to be added by using this library.

@JLLeitschuh Great idea! It's something I've thought about to some extent already, so thanks for raising the issue for me. :)
FYI, I'm nowhere near ready to provide API examples since I'm still fleshing out ListContract, the first testing class this library will have, so I'll address this once I'm ready.
However, I'll give you a rough idea of how I imagine jupiter-collection-testers would be used, both for your benefit and mine so that I don't forget (:wink:):

To write a JUnit 5 test that automatically tests ArrayList for you (I realise this is a contrived example, but I hope it communicates the idea for you) (adapted from this existing file):

class ArrayListTests implements ListContract<String> {
  // Specify all features that the sub-tests within `ListContract<String>` should test for.
  // They are equivalent to guava-testlib's ListFeature and CollectionFeature classes:
  // https://github.com/google/guava/tree/master/guava-testlib/src/com/google/common/collect/testing/features
  @Override
  public Set<Feature<?>> features() {
    return Feature.allFeaturesRecursively(
        // Check that ArrayList supports the following optional methods:
        // 1. Collection.add(Object)
        // 2. List.add(int, Object)
        // 3. List.set(int, Object)
        // 4. Collection.remove(Object)
        // 5. List.remove(int)
        // 6. Collection.iterator().remove()
        ListFeature.GENERAL_PURPOSE,
        // Check that ArrayList is serializable
        CollectionFeature.SERIALIZABLE,
        // Check that ArrayList gracefully accepts nulls
        CollectionFeature.ALLOWS_NULL_VALUES,
        // Check on a best-effort basis that ArrayList itself throws an exception when it's modified concurrently
        CollectionFeature.FAILS_FAST_ON_CONCURRENT_MODIFICATION,
        // A special sort of feature: tells the ListContract how many elements ArrayList can support.
        // "SUPPORTS_ANY_SIZE" means that it supports having 0, 1 or many elements.
        CollectionSize.SUPPORTS_ANY_SIZE);
  }

  @Override
  public TestListGenerator<String> generator() {
    // Provide a "factory" for turning an array of elements into an ArrayList.
    // The size of this array is determined by the `CollectionSize` specified in features() above
    // (but what effect it has exactly I've yet to fully think through.)
    return (TestStringListGenerator)
        elements -> Arrays.stream(elements).collect(toCollection(ArrayList::new));
  }
}

Huh, interesting. Also think about equality and hash code checks to ensure that they are following those contracts as well.

Thanks for the feedback @JLLeitschuh! I realise coming back to this that I'm not entirely clear on what you meant by "equality and hash code checks". Did you mean the contracts of the equals and hashCode methods of the collection being tested?

Correct.

Great, thank your for confirming my understanding. I've added it as a to-do to https://github.com/jbduncan/jupiter-collection-testers/issues/13. :)


v14.0 release

Hi @streamich, do you have any plans to merge this Pull Request? I'm waiting for this to be released!

@maku693 will release it hopefully today 🤞  here: https://github.com/streamich/react-use/pull/1214


Version Updated

Readme & Screenshot Updated
Method and Report code updated for latest open release (11.0 SP12)

Committed Optimized Method Code

Suggestions Committed.


Lookup doesn't work in v9.1

Hello @ggeiszle and @TYLEROL
I tried below snippet for lookup but it didn't worked:
xrmApp.Entity.SetValue({ Name = "language", Value = "English"});
Even SelectLookup isn't helping.
xrmApp.Entity.SelectLookup("language");
Where language is the field name.
Please help with some options.

Hello,
xrmApp.Entity.SelectLookup(string field, int index);
For Example-> xrmApp.Entity.SelectLookup("language", 0);
select the first record of your Look up

Hello @dnamrgrts
It give error as 'No overload for method 'SelectLookup' takes 2 arguments	'

I modified my scripts:
            LookupItem language = new LookupItem { Name = "language", Value = "English" };
            xrmApp.Entity.SetValue(language);
          // **Above snippet works**

            LookupItem country = new LookupItem { Name = "im360_countryid", Value = "Brazil" };
            xrmApp.Entity.SetValue(country);
        // **Above snippet works**

            //xrmApp.ThinkTime(2000);
            LookupItem parentID = new LookupItem { Name = "parentcustomerid", Value = "LARSEN & TOUBRO INFOTECH LIMITED" };
            xrmApp.Entity.SetValue(parentID); // as per below exception - it fails on this line

// Above snippet doesn't work
Here is the exception
Test Name:	UCITestCreateContact
Test FullName:	Microsoft.Dynamics365.UIAutomation.Sample.UCI.CreateContactUCI.UCITestCreateContact
Test Source:	D:\EasyRepro\EasyRepro-releases-v9.1\Microsoft.Dynamics365.UIAutomation.Sample\UCI\Create\CreateContact.cs : line 22
Test Outcome:	Failed
Test Duration:	0:01:15.7415573
Result StackTrace:
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary2 parameters)    at OpenQA.Selenium.Remote.RemoteWebElement.Click()    at Microsoft.Dynamics365.UIAutomation.Browser.SeleniumExtensions.Click(IWebElement element, Boolean ignoreStaleElementException) in D:\EasyRepro\EasyRepro-releases-v9.1\Microsoft.Dynamics365.UIAutomation.Browser\Extensions\SeleniumExtensions.cs:line 41    at Microsoft.Dynamics365.UIAutomation.Api.UCI.WebClient.<>c__DisplayClass61_0.<SetValue>b__0(IWebDriver driver) in D:\EasyRepro\EasyRepro-releases-v9.1\Microsoft.Dynamics365.UIAutomation.Api.UCI\WebClient.cs:line 1587    at Microsoft.Dynamics365.UIAutomation.Browser.DelegateBrowserCommand1.ExecuteCommand(IWebDriver driver, Object[] params) in D:\EasyRepro\EasyRepro-releases-v9.1\Microsoft.Dynamics365.UIAutomation.Browser\DelegateBrowserCommand.cs:line 28
at Microsoft.Dynamics365.UIAutomation.Browser.BrowserCommand1.Execute[T1,T2,T3,T4,T5,T6,T7,T8,T9](IWebDriver driver, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9) in D:\EasyRepro\EasyRepro-releases-v9.1\Microsoft.Dynamics365.UIAutomation.Browser\BrowserCommand.cs:line 136    at Microsoft.Dynamics365.UIAutomation.Browser.BrowserCommand1.Execute(IWebDriver driver) in D:\EasyRepro\EasyRepro-releases-v9.1\Microsoft.Dynamics365.UIAutomation.Browser\BrowserCommand.cs:line 36
at Microsoft.Dynamics365.UIAutomation.Browser.BrowserPage.Execute[TResult](BrowserCommandOptions options, Func`2 delegate) in D:\EasyRepro\EasyRepro-releases-v9.1\Microsoft.Dynamics365.UIAutomation.Browser\BrowserPage.cs:line 182
at Microsoft.Dynamics365.UIAutomation.Api.UCI.WebClient.SetValue(LookupItem control, Int32 index) in D:\EasyRepro\EasyRepro-releases-v9.1\Microsoft.Dynamics365.UIAutomation.Api.UCI\WebClient.cs:line 1567
at Microsoft.Dynamics365.UIAutomation.Api.UCI.Entity.SetValue(LookupItem control, Int32 index) in D:\EasyRepro\EasyRepro-releases-v9.1\Microsoft.Dynamics365.UIAutomation.Api.UCI\Elements\Entity.cs:line 302
at Microsoft.Dynamics365.UIAutomation.Sample.UCI.CreateContactUCI.UCITestCreateContact() in D:\EasyRepro\EasyRepro-releases-v9.1\Microsoft.Dynamics365.UIAutomation.Sample\UCI\Create\CreateContact.cs:line 47
Result Message:
Test method Microsoft.Dynamics365.UIAutomation.Sample.UCI.CreateContactUCI.UCITestCreateContact threw exception:
System.InvalidOperationException: unknown error: Element  is not clickable at point (346, 64). Other element would receive the click: New
(Session info: chrome=72.0.3626.96)
(Driver info: chromedriver=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform=Windows NT 10.0.16299 x86_64)

I'm running into similar issues here:
LookupItem item = new LookupItem { Name = "pricelevelid", Value = "de_sales_2016"};
xrmBrowser.Entity.SetValue(item);
xrmBrowser.ThinkTime(2000);

LookupItem item = new LookupItem { Name = "customerid", Value = "Nancy Anderson (sample)"};
xrmBrowser.Entity.SetValue(item);

The first instruction to set the value for "pricelevelid" works perfectly fine. The second however fails and I get the following exception:
System.InvalidOperationException: List does not contain a record with the name:  Nancy Anderson (sample)
The image below though indicates that it does exist. I had for some reason also some undeterministic behaviour while debugging through this error and had the value "Nancy Anderson (sample)" accepted before but could not reproduce it.
I'm also on the current branch releases/v9.1

@TYLEROL : Please help us with any workarounds as we are stuck with this lookup.

Any updates on this, not working for us either

Hello @TYLEROL
Any workaround for this bug?
Appreciate your assistance on this.

There is a workaround I added called highlight record. You can then use the 'edit command after it is selected.
Get Outlook for Androidhttps://aka.ms/ghei36

From: Sachchin Annam<EMAIL_ADDRESS>Sent: Wednesday, April 10, 2019 7:32:05 PM
To: Microsoft/EasyRepro
Cc: markcunninghamuk; Comment
Subject: Re: [Microsoft/EasyRepro] Lookup doesn't work in v9.1 (#371)
Hello @TYLEROLhttps://github.com/TYLEROL
Any workaround for this bug?
Appreciate your assistance on this.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/EasyRepro/issues/371#issuecomment-481809903, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AVS8CB80ndQDbJzrdpsXfL6OzIXDQ1iSks5vfi4lgaJpZM4azrMo.

@markcunninghamuk: is your workaround related to selecting Account from lookup field?

I am having the same issue. Are there any updates as we are stuck now,

I was able to get my test to work. I added a ThinkTime afterwards and it worked. I beleive we are just not giving the control enough time to fully function.
LookupItem contact = new LookupItem { Name = "primarycontactid", Value = "User, UITesting" };
xrmApp.Entity.SetValue(contact);
xrmApp.ThinkTime(3000);

i trying this in the V9.1 but Unified Interface doesn´t work... anyone with the same problem?

William Owens is correct. It is much more reliable with a thinktime added.
Get Outlook for Androidhttps://aka.ms/ghei36

From: MMCod<EMAIL_ADDRESS>Sent: Tuesday, April 23, 2019 3:11:01 PM
To: Microsoft/EasyRepro
Cc: markcunninghamuk; Mention
Subject: Re: [Microsoft/EasyRepro] Lookup doesn't work in v9.1 (#371)
i trying this in the V9.1 but Unified Interface doesn´t work... anyone with the same problem?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/EasyRepro/issues/371#issuecomment-485819808, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AFKLYCFGIAG7U35GR2ONT5DPR4KHLANCNFSM4GWOWMUA.

It works well, when the lookup has relatively small number of items.. Like while selecting Language or Currency.
But it fails with the below error when we try to select Account where lookup has large number of items.
List does not contain a record with the name:  abc_AccountName

I am also having this issue. I agree with Sachin it works great when you have a small list. The more frustrating issue for me is it was working fine and just stopped working - guess it could be as we have added more records. The more frustrating part is if you debug the test and get the error and continue it ends up setting the value. This has us stopped in automated testing in the UI.
Thanks!!

After some additional testing it actually types the field and the option is displayed in the lookup box but it just doesn't get selected. I have as a temporary work around just used javascript to set the field values but it does not support any conditional testing. This issue has gotten much worse since the latest update in UCI

Do we have any workaround as we are stuck with lookup selection in almost all the scripts?
@TYLEROL : Please help us.

I am having the same issue. Not able to select a value from look up . CRM FS version is <IP_ADDRESS>4

Do we have any updates, as most of us are facing the same issue and not able to proceed further due to the underline issue.

@nlipkow your issue might be because of the way the lookup is set using XrmBrowser. Currently the behavior will open the dialog with the top X results and then attempt to do a case sensitive match on the results. So if Price Level only has a few values, it stands to reason it would be in the list of what is initially displayed before a search. In the case of the Contact lookup, is Nancy Anderson isn't in the initial list of records it will fail with the error you're seeing.  Submitted PR 479 for this.

Merged into 9.1 branch - closing

@TYLEROL  @jlattimer I am facing issues in these type of look up field for Contact and Account, Other Lookups(Country) are working. I tried with Current release v9.1.

Pull request 515 adds the ability to use activity party fields

I still don't see it working while creating cases in UCI.  It doesn't set the lookup but the test case execution says it was successful

I still don't see it working while creating cases in UCI. It doesn't set the lookup but the test case execution says it was successful

I agree as i am also facing the same problem. I have created a bug with more details.
https://github.com/microsoft/EasyRepro/issues/750

Hello. I cloned latest v9.1 version. I still see this error:
Message: Test method Microsoft.Dynamics365.UIAutomation.Sample.Web.CreateAccount.WEBTestCreateNewAccount threw exception:
System.InvalidOperationException: Login page failed
I am using IE. It logs in with username, password and IE ask to remember dialog and then test fails.
I added this line also:
xrmBrowser.LoginPage.Login(_xrmUri, _username, _password);
xrmBrowser.GuidedHelp.CloseGuidedHelp();
xrmBrowser.Dialogs.CloseWarningDialog();
xrmBrowser.Navigation.OpenApp("Sales Hub");
xrmBrowser.ThinkTime(500);
xrmBrowser.Navigation.OpenSubArea("Sales", "Accounts");
Please help. I am on version 9.1.x sandbox.


Run compilers in release mode

Rust for example provides a --release mode, and we should run that by default, with a --debug Subo flag for when that's not desired.

Looks like the build cmds/flags used are determined @
https://github.com/suborbital/subo/blob/ad5be137b5b8dd68e2897459f5efa45d4534451c/builder/context/native.go#L20-L25
I think simple conditional template annotations could solve this along with that new subo flag --debug.
I can take this on if no one else is working on it

It was not as simple as I thought! 🙃


Create Redis client in TypeScript. Reis 4.0.0.

Hi all,
I am relative new to TypeScritp. That's why my question is eventually really obvious. I need help with creating a redis client in TypeScript. Especially declaring a client type:
let redisClient:  RedisClientType | undefined

  export async function useRedis(): RedisClientType {
      if (!redisClient){
          redisClient = createClient( { /* redis options */} )
          await redisClient.connect()
      }

      return redisClient
  }

With this code I receive a TypeScript error  "type RedisClientType<...> is not assignable to never".
What is the right approach to instantiate redis client?
Perhaps you could just provide an TypeScript example.
Thank you in advance

Ahoy! I'd also like inputs on this. What is the type of the object returned by createClient({url})?

What is the type of the object returned by createClient({url})?

It's RedisClientType, which comes from @node-redis/client/dist/lib/client. The only solution I've found is
import { RedisClientType } from '@node-redis/client/dist/lib/client';

but this has two cons:

I have to depend on @node-redis/client directly. It should be an implementation detail of the redis package.
I'm reaching pretty far into the internals of that package.

Together, these two things mean my code is likely to break when these packages change.

#1732 has more on this

thank you @jamesarosen.
import { RedisClientType } from '@node-redis/client/dist/lib/client';
Is exactly the import I have. But still, if you specify type of the variable for the client, TypeScript shows a Type Error:
let redisClient : RedisClientType = createClient( {options} )

//=> redisClient has following error:
// Error:(12, 9) TS2322: Type 'RedisClientType<{ json: { ARRAPPEND: typeof import("C:/workspace/......   Types of property 'options' are incompatible.

So, I still don't know, how to use RedisClientType - how to specify a variable type or return type of a function.

This worked for me:
import { createClient } from 'redis'

export type RedisClientType = ReturnType<typeof createClient>

export default async function start(): Promise<RedisClientType> {
  const redis: RedisClientType = createClient({ url: … })
  await redis.connect()
  return redis
}

Define and export own redis client type worked for me!
export type RedisClientType = typeof client // OK

The second option to get the redis client type as ReturnType doesn't work for function return types:
export type RedisClientType = ReturnType<typeof createClient> // not working as function return type

export function useRedis() : Promise<RedisClientType>
{
...
return client   // <= Error TS2719:... Two different types with this name exist, but they are unrelated.... The types returned by 'multi()' are incompatible between these types.
}

Working example:
const client = createClient( {options} )
export type RedisClientType = typeof client

export function useRedis() : Promise<RedisClientType>
{
...
await client.connect()
...
return client
}

Duplicate of #1673

Guys, if you take on the approach suggested by our fellow @jamesarosen you are probably going to hit some performance issues when compiling your typescript project.
I removed this explicit workaroundy type definition and it decreased my build time from 5+ minutes to 5 seconds.
That's what I experienced


Code hygiene: Rename index.ts and index.tsx files to specific names.

Scrub through the code to avoid index.ts (barrel files) and name index.tsx components to semantically meaningful names.
This will

Help devs learn and find code faster
Allow bundling optimizations and HMR to function better

This is an ongoing thing across releases, so closing for R11


Import failure

go get -u "github.com/gorgonia/tensor"
return an error of
package github.com/gorgonia/tensor: code in directory C:\go\src\github.com\gorgonia\tensor expects import "gorgonia.org/tensor"

You need to go get -u gorgonia.org/tensor

Thanks, just getting started and the README says otherwise.

Ah yes. It should be fixed. Feel free to send a PR. Otherwise it'll get rolled in to the v0.9.0 fixes

Fixed in v0.9.0 branch


Support AFU Directed mode

This is the first patch where we support "AFU directed mode".
You need to install FPGA code 5.0.0 or later after this patch. Use the "capi-flash-script.sh"
to upgrade your FPGA card.
You will have new devices (/dev/cxl/afu0.0s and /dev/cxl/afu0.0.m) after reboot.
Make sure to have access rights to you'r devices (e.g. udev rules).
Try "genwqe_echo -A CAPI -vv" to check if directed mode works.

Hi Eberhard,

Try "genwqe_echo -A CAPI -vv" to check if directed mode works.
We should get rid of the need to call a tool with -vv ... to get important information ;-).

Regards
Frank


Add AWS CSI driver

EKS have migrated to out of tree CSI and it's not enabled by default.
We enable the addon to configure the CSI driver.

I need to verify if I need to do some IAM changes as well.
https://docs.aws.amazon.com/eks/latest/userguide/csi-iam-role.html

Hmm I can see the following in the logs.
E0906 09:41:01.037589       1 driver.go:120] GRPC error: rpc error: code = Internal desc = Could not delete volume ID "vol-02694e895687e3259": DeleteDisk could not delete volume: UnauthorizedOperation: You are not authorized to perform this operation. Encoded authorization failure message: "base64 data"

I think that a disk created in the cluster before adding the CSI driver is giving me the error.
➜ k get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS     CLAIM                             STORAGECLASS   REASON   AGE
pvc-52c301c9-bac0-44f3-aaba-d8b3bab9da54   5Gi        RWO            Delete           Bound      starboard-operator/data-trivy-0   gp2                     103s
pvc-d01883c9-2662-4832-b11b-6e6e90aa98c4   5Gi        RWO            Delete           Released   starboard-operator/data-trivy-0   gp2                     19h

The old disk should defiantly have been released .


Cleanup and reorganize the asm samples repo

Addresses https://github.com/GoogleCloudPlatform/anthos-service-mesh-samples/issues/75
This is a large overhaul to re-organize the ASM samples repo.

[ ] region tags (will require CL's to address these)
[x] tf ci
[x] acm config sync (~will open a corresponding PR in ACM repo~ https://github.com/GoogleCloudPlatform/anthos-config-management-samples/pull/57)

I will open corresponding CL's for changing the region tags listed by snippet bot check

https://github.com/GoogleCloudPlatform/anthos-config-management-samples/pull/57
Draft PR opened for changing the ACM side

Closing to break up this PR into smaller ones!


Reproducibility of experiments

Hi, Is there any way to fix the seed of the whole training procedure, so that results are reproducible?
Apparently there was some sort of seed for the cross validation part in some older documentation, but it does not seem to work anymore.

I believe that everything is already reproducible if HPO is disabled and the FASTAI neural network model is disabled. Cross-validation splits are deterministic and reproducible given the same data.
FASTAI is non-deterministic during training for performance reasons, and we have not implemented seeded HPO. Ensure that time_limit is set to None as well so that time does not impact the training process.
In general, we don't plan to keep results reproducible, as generally the difference between seeds is fairly negligible and the coding complexity to ensure this is too high.


Tasks running indefinitely

2016-10-13 00:00:19+0400 [scrapy] INFO: Scrapy 0.24.4 started (bot: full_domain)
2016-10-13 00:00:19+0400 [scrapy] INFO: Optional features available: ssl, http11, django
2016-10-13 00:00:19+0400 [scrapy] INFO: Overridden settings: {'NEWSPIDER_MODULE': 'malspider.spiders', 'SPIDER_MODULES': ['malspider.spiders'], 'LOG_FILE': 'logs/malspider/full_domain/76f0156890b611e6959d005056ae7ab0.log', 'USER_AGENT': 'Mozilla/5.0 (Android; Tablet; rv:30.0) Gecko/30.0 Firefox/30.0', 'BOT_NAME': 'full_domain'}
2016-10-13 00:00:19+0400 [scrapy] INFO: Enabled extensions: LogStats, TelnetConsole, CloseSpider, WebService, CoreStats, SpiderState
2016-10-13 00:00:19+0400 [scrapy] INFO: Enabled downloader middlewares: RandomUserAgentMiddleware, HttpAuthMiddleware, DownloadTimeoutMiddleware, RetryMiddleware, DefaultHeadersMiddleware, MetaRefreshMiddleware, HttpCompressionMiddleware, RedirectMiddleware, CookiesMiddleware, ChunkedTransferMiddleware, DownloaderStats
2016-10-13 00:00:19+0400 [scrapy] INFO: Enabled spider middlewares: HttpErrorMiddleware, OffsiteMiddleware, WebdriverSpiderMiddleware, RefererMiddleware, UrlLengthMiddleware, DepthMiddleware
2016-10-13 00:00:19+0400 [scrapy] INFO: Enabled item pipelines: DuplicateFilterPipeline, WhitelistFilterPipeline, MySQLPipeline
2016-10-13 00:00:19+0400 [full_domain] INFO: Spider opened
2016-10-13 00:00:19+0400 [full_domain] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:00:19+0400 [scrapy] DEBUG: Telnet console listening on <IP_ADDRESS>:6026
2016-10-13 00:00:19+0400 [scrapy] DEBUG: Web service listening on <IP_ADDRESS>:6083
2016-10-13 00:00:19+0400 [scrapy] DEBUG: Downloading https://www.des.gov.ge with webdriver
2016-10-13 00:01:19+0400 [full_domain] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:02:19+0400 [full_domain] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:03:19+0400 [full_domain] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:04:19+0400 [full_domain] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:05:19+0400 [full_domain] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:06:19+0400 [full_domain] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:07:19+0400 [full_domain] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:08:19+0400 [full_domain] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:09:19+0400 [full_domain] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:10:19+0400 [full_domain] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:11:19+0400 [full_domain] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:12:19+0400 [full_domain] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:13:19+0400 [full_domain] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:14:19+0400 [full_domain] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:15:19+0400 [full_domain] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:16:19+0400 [full_domain] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)

This goes on for 24 hours, at which point the task is sigkilled. Seems to happen to all the domains I try to monitor, but not every time. Any idea why this keeps happening?

Hey Alex,
I have a few ideas:

Your PhantomJS instance needs to be updated. There were multiple issues
with version < 2.0 and an update fixed the issue for most users. Run
"phantomjs --version" from the command line. You should have 2.0 or higher.
The latest version of Malspider installs an updated version of PhantomJS,
so if this is your problem you can update the code or run
install/install_dependencies.

Some users have reported random issues with PhantomJS hanging up without
error. This appears to be a somewhat common problem with PhantomJS and I'll
have to find a way to handle that from Malspider. I don't think this is the
case for you, though, since Malspider isn't able to scrape even the first
page.

I think you have an outdated PhantomJS version. Let's start there. I was
able to crawl the site in question just fine, minus a character encoding
issue I'm working on...
Keep me updated. Let me know if updating PhantomJS works. If not we'll keep
debugging.
-James
On Tue, Oct 18, 2016 at 4:02 AM, Alex Shatberashvili <
<EMAIL_ADDRESS>wrote:

2016-10-13 00:00:19+0400 [scrapy] INFO: Scrapy 0.24.4 started (bot:
full_domain)
2016-10-13 00:00:19+0400 [scrapy] INFO: Optional features available: ssl,
http11, django
2016-10-13 00:00:19+0400 [scrapy] INFO: Overridden settings:
{'NEWSPIDER_MODULE': 'malspider.spiders', 'SPIDER_MODULES':
['malspider.spiders'], 'LOG_FILE': 'logs/malspider/full_domain/
76f0156890b611e6959d005056ae7ab0.log', 'USER_AGENT': 'Mozilla/5.0
(Android; Tablet; rv:30.0) Gecko/30.0 Firefox/30.0', 'BOT_NAME':
'full_domain'}
2016-10-13 00:00:19+0400 [scrapy] INFO: Enabled extensions: LogStats,
TelnetConsole, CloseSpider, WebService, CoreStats, SpiderState
2016-10-13 00:00:19+0400 [scrapy] INFO: Enabled downloader middlewares:
RandomUserAgentMiddleware, HttpAuthMiddleware, DownloadTimeoutMiddleware,
RetryMiddleware, DefaultHeadersMiddleware, MetaRefreshMiddleware,
HttpCompressionMiddleware, RedirectMiddleware, CookiesMiddleware,
ChunkedTransferMiddleware, DownloaderStats
2016-10-13 00:00:19+0400 [scrapy] INFO: Enabled spider middlewares:
HttpErrorMiddleware, OffsiteMiddleware, WebdriverSpiderMiddleware,
RefererMiddleware, UrlLengthMiddleware, DepthMiddleware
2016-10-13 00:00:19+0400 [scrapy] INFO: Enabled item pipelines:
DuplicateFilterPipeline, WhitelistFilterPipeline, MySQLPipeline
2016-10-13 00:00:19+0400 [full_domain] INFO: Spider opened
2016-10-13 00:00:19+0400 [full_domain] INFO: Crawled 0 pages (at 0
pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:00:19+0400 [scrapy] DEBUG: Telnet console listening on
<IP_ADDRESS>:6026
2016-10-13 00:00:19+0400 [scrapy] DEBUG: Web service listening on
<IP_ADDRESS>:6083
2016-10-13 00:00:19+0400 [scrapy] DEBUG: Downloading
https://www.des.gov.ge with webdriver
2016-10-13 00:01:19+0400 [full_domain] INFO: Crawled 0 pages (at 0
pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:02:19+0400 [full_domain] INFO: Crawled 0 pages (at 0
pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:03:19+0400 [full_domain] INFO: Crawled 0 pages (at 0
pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:04:19+0400 [full_domain] INFO: Crawled 0 pages (at 0
pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:05:19+0400 [full_domain] INFO: Crawled 0 pages (at 0
pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:06:19+0400 [full_domain] INFO: Crawled 0 pages (at 0
pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:07:19+0400 [full_domain] INFO: Crawled 0 pages (at 0
pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:08:19+0400 [full_domain] INFO: Crawled 0 pages (at 0
pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:09:19+0400 [full_domain] INFO: Crawled 0 pages (at 0
pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:10:19+0400 [full_domain] INFO: Crawled 0 pages (at 0
pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:11:19+0400 [full_domain] INFO: Crawled 0 pages (at 0
pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:12:19+0400 [full_domain] INFO: Crawled 0 pages (at 0
pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:13:19+0400 [full_domain] INFO: Crawled 0 pages (at 0
pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:14:19+0400 [full_domain] INFO: Crawled 0 pages (at 0
pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:15:19+0400 [full_domain] INFO: Crawled 0 pages (at 0
pages/min), scraped 0 items (at 0 items/min)
2016-10-13 00:16:19+0400 [full_domain] INFO: Crawled 0 pages (at 0
pages/min), scraped 0 items (at 0 items/min)
This goes on for 24 hours, at which point the task is sigkilled. Any idea
why this keeps happening?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ciscocsirt/malspider/issues/13, or mute the thread
https://github.com/notifications/unsubscribe-auth/AR0QEMy6cA5S_xCYkrQf3qInNjLF4Bmzks5q1H0PgaJpZM4KZfGq
.

James,
I'm happy to report that PhantomJS was indeed behind this. For some reason, the install_dependencies script set up the 1.9 version, so I ended up reinstalling it via npm. Are there any tradeoffs between the standalone version and the npm version, in regards to malspider?

Hey Alex,
I'm glad Malspider is working for you now. I don't think there is a
difference (or advantage) to using the standalone version vs the npm
version. I install directly from the PhantomJS author's bitbucket page (
https://bitbucket.org/ariya/phantomjs/) and manually add phantomjs to
/usr/bin/. I don't immediately remember why I did it this way, but I think
it had something to do with package managers not adding phantomjs to the
user's PATH correctly or not updating older phantomjs instances properly.

James

On Thu, Oct 27, 2016 at 4:00 AM, Alex Shatberashvili <
<EMAIL_ADDRESS>wrote:

James,
I'm happy to report that PhantomJS was indeed behind this. For some
reason, the install_dependencies script set up the 1.9 version, so I ended
up reinstalling it via npm. Are there any tradeoffs between the standalone
version and the npm version, in regards to malspider?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ciscocsirt/malspider/issues/13#issuecomment-256573823,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AR0QEObD1n_Ho9IOrP4hhRUvx3Qg_7x-ks5q4FomgaJpZM4KZfGq
.


ENH make sure travis builds ok

Checklist

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

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

The outputs section contained an unexpected subsection name. run_exports is not a valid subsection name.

Note the build number has not been bumped since it never finished anyways.

The linter is wrong.


Fitting handlebars template engine into Response/Serializer or Middleware system

I was looking into tower-web to integrate handlebars into its system.
The typical usage of handlebars in web application is to create a server-scoped registry, that holds all templates in memory. We use the registry to render templates returned from handler functions.
The ideal API for tower-web in my mind is to create a Template struct, which contains template name and template data. The Template struct will implement Response to render the data structure into actual http response. The problem is Response trait only provides a request-scoped Context so there seems to be no way to access server-scoped handlebars registry.
So is it possible to bind the registry into some data structure that has server-scoped lifetime? And be accessible from Response trait and middlewares.

Does https://github.com/carllerche/tower-web/pull/98 help?

It seems relevant. But for now the Config is only available for extractors. We'd better add it to Context of Response too.
The Template response works like File pretty much except it requires a server-scoped config, the registry.

Oh, I didn't notice that feature only works for extractors. A quick workaround might be to pass the registry (an Arc of it) to your Template, but adding Config to responses would probably be better.

Checked the code I found the response is implemented via macros, which extractors were Service. It seems no easy way to access Config from Resource. Why not make Resource and Response serialization a Middleware. Iron was doing it that way and I find it works pretty well.

It should be possible to get the config structure into response::Context (that is what it is there for).
The context takes a T: Serializer, which is service scoped. That trait could have a fn added to access the config.
Returning a Template type is a good first step, however, I would like to figure out a way to avoid having to do that. It would be nice to do something like:
#[derive(Response)]
struct Index {
    message: String,
}

#[derive(Response)]
#[web(view = "my_custom_template")]
struct CustomTemplate {
    message: String,
}

impl_web! {
    impl MyResource {
        // Uses convention to render a template at "my_resource/index" in the registery.
        #[get("/")]
        fn index(&self) -> Index {
            Ok(Index {
                message: "hello".to_string(),
            })
        }

        // Allow specifying the template
        #[get("/foo")]
        fn with_custom_template(&self) -> CustomTemplate {
            Ok(CustomTemplate {
                message: "custom".to_string(),
            })
        }
    }
}

ServiceBuilder::new()
    // By convention, this would look for a `views` directory or something like that and load
    // templates from there.
    .serializer(Handlebars::new())
    .resource(MyResource::new())
    .run(&addr)
    .unwrap();

To support this, first adding serializers would need to be supported. Second, we would have to figure out how to handle the #[web(view = "my_custom_template")] attribute.
Ideally, tower-web would know nothing about handlebars.
One strategy would be to add a fn to Response for introspection. So, you could do something like:
my_response.attributes()

and that would return a type that lets third parties see all the attributes on the response. To support that the macro would have to let unknown attributes through. There could be a runtime check at boot or something to validate that all attributes are known... but anyway.
Thoughts?

@sunng87 Is this something you want to try to take on? I can provide guidance as needed.

@carllerche Thanks! I'm quite interested in taking this on and adding templating support for tower-web.
For the template API, what if the handler might return one of two different templates?

        // Allow specifying the template
        #[get("/foo")]
        fn with_custom_template(&self) -> ??  {
            if some_check {
              Ok(CustomTemplate {
                  message: "custom".to_string(),
              })
            } else {
              Ok(AnotherTemplate { ... })
            }
        }

Of course we can make a trait called ModelAndView so the handler could return impl ModelAndView, and #[web(view ....)] generates an impl of ModelAndView. But to use the attribute we might want to hide the internals, impl ModelAndView still leaks it to user.
At the moment I don't feel it's any better than Template(name, data). The Template struct made it more flexible to choose actual view to render, while easier to unittest. And Template can be implementation independent too. Either handlebars or tera could work with it.

One more question, by .serializer(Handlebars::new()), can we still be able to use DefaultSerializer, the serde based one for json marshalling? A web application could use both template engine and json.
Current Serializer API requires data to implement serde::Serialize, which is road blocker to the Template struct solution. Another solution is to deal with it like File, that impls Response for Template. It requires Template a template engine specific API, I can put it into some crate like tower-handlebars. But that won't benefit other template engine like tera.

I think there are a couple of use cases here, some of them probably having more merit than others:

I want to use a template engine for all (most?) of my handlers
I want to customize the serialization for one specific type
I want to customize the serialization for one specific handler
I want to customize the serialization of a response according to the Accept client header
I want to use two different (types of) template engines

We should probably evaluate the solution in https://github.com/carllerche/tower-web/issues/103#issuecomment-420329399 according to some use cases like these.

I'm somewhat wary of "baking in" the serializer into the server.

Another solution is to deal with it like File, that impls Response for Template. It requires Template a template engine specific API, I can put it into some crate like tower-handlebars. But that won't benefit other template engine like tera.

Implementing Response is completely fine. The current serde::Serialize is certainly useful, but it might be too data-centric, like when you're writing a web service and you're fine with a single serialization format.

@sunng87 I'm looking here and a template is rendered using json!, which is serde.
The Tower Web serializer is intended to support multiple formats (json, html, etc...) at a time. So, an application can use both JSON and Handlebars. The API I described above is a builder that would chain a new serializer onto the existing list, not replace it. The idea is that the JSON serializer would handle content types of "application/json" and the Handlebars serializer would handle "text/html".
It looks like you use serde to get the variables for the template, is that correct? So, it seems like the problem is you do not have access to the template name. Perhaps the solution is to add an additional argument to response::Serializer including contextual information:

Attributes set on the response type
Resource's module, type, and function
Original request
Application configuration

If this information was available in Serializer::serialize, it should be possible to implement the API I described above without hard coding handlebars into Tower Web.
Sketch:
struct SerializeContext { ... }

impl SerializeContext {
    /// Returns the module in which the `impl_web!` was
    pub fn resource_impl_module(&self) -> &'static str { ... }

    /// Returns the type name, for example:
    ///
    /// ```
    /// impl_web! {
    ///     impl HelloWorld { ... }
    /// }
    ///
    /// serialize_context.resource_name() // "HelloWorld"
    /// ```
    ///
    ///
    fn resource_name(&self) -> &'static str { ... }

    /// Returns a reference to the original request (without the body).
    fn request(&self) -> &http::Request<()> { ... }

    /// Returns an application configuration type
    pub fn config<T: 'static>(&self) -> Option<&T> { ... }

    /// Returns the `#[web(...)]` attributes set on response types defined with
    /// `#[derive(Response)]`
    ///
    /// This allows access to the attributes at runtime (i.e. not in the macro).
    pub fn response_attributes(&self) -> Attributes { ... }
}

// The template registery probably can be on the serializer and does not have to go through the
// configuration system.
struct HandlebarsSerializer {
    registery: handlebars::Handlebars,
}

impl response::Serializer for HandlebarsSerializer {
    type Format = ();

    // This is wonky... not sure what I was thinking, but we can revisit
    fn lookup(&self, name: &str) -> ContentType<Self::Format> {
        let format = if name == "application/html" {
            Some(())
        } else {
            None
        };

        ContentType::new(HeaderName::from(name).unwrap(), format)
    }

    fn serialize<T>(&self, value: &T, format: &Self::Format, context: &SerializeContext) -> Result<Bytes, Error>
    where T: serde::Serialize
    {
        // Check if a template name is specified.
        if let Some(name) context.response_attributes().get("template") {
            return self.render(name, value);
        }

        // Otherwise, use a conventional name. I don't know what the convention should be, but we
        // can figure it out!
        let name = format!("{}/{}.hbs");

        // This would also handle a "template not found" situation.
        self.render(&name, value)
    }
}

@lnicola

The current serde::Serialize is certainly useful, but it might be too data-centric.

The entire goal is to be completely data centric :) I would like all HTTP / HTML concerns to be decoupled from business logic. This means that the handler should return the data for the response and the serializer should render it!

@carllerche Thanks! That's much clear. So if we want to use different views or data models for a particular handler, is the code below possible?
        // Allow specifying the template
        #[get("/foo")]
        fn with_custom_template(&self) -> impl Response  {
            if some_check {
              Ok(CustomData1 {
                  message: "custom".to_string(),
              })
            } else {
              Ok(CustomData2 { ... })
            }
        }

@sunng87 that wouldn't be possible because you are returning two different types. You would need to wrap that w/ Either or generate an either type.
#[derive(Response)]
#[web(either)]
enum MyResponse {
    Data1(CustomData1),
    Data2(CustomData2),
}

// Allow specifying the template
#[get("/foo")]
fn with_custom_template(&self) -> impl Future<Item = MyResponse>  {
    if some_check {
      Ok(MyResponse::Data1(CustomData1 {
          message: "custom".to_string(),
      }))
    } else {
      Ok(MyResponse::Data2(CustomData2 { ... }))
    }
}

The idea is that the JSON serializer would handle content types of "application/json" and the Handlebars serializer would handle "text/html".

To chime in, I think it would be a shame to enforce that all uses of returning "text/html" in an application must be served by a single type. It's pretty common for a Rails application to have both ERB and HAML templates, for example.

@shepmaster an option to deal w/ that would be to implement a multi-template library serializer. It should be able to use the same logic above and pick the template that is available (haml or erb).

I'll probably take a stab at this to get it going.

#115 is a first stab at it this.


added version to avoid maven warning

Coverage remained the same at 67.05% when pulling 7378bfb7be5eec2f5cfbbf388f99f81ee105c6b8 on krichter722:minor_pom_fix1 into 02f0077f84d83167810b9b2e31d1ff70b00a79a7 on PhantomYdn:master.

Thanks!


[Feature request] add pattern support

Implementing pattern support for complex drawings.

I'm trying to add support to pattern using a simple approach, adding patterns dictionary as symbol/defs, and then append pattern contents as tag children. This would be repeated until fill bounds and then applying clipper boolean operation.
Currently stuck at https://github.com/jorgerobles/lw.svg-parser/tree/pattern_support :smile:


Port UI to Rust

This PR will port our ui toolkit to be as much as possible in Rust, only relying on C for macros and SDK calls.

Awesome work!!!


UART1: spurious activity if light sleep mode is enabled and probably system load is high (IDFGH-7109)

Environment

Development Kit: none
Module or chip used:  uBlox NINA-W1
IDF version: v4.4-367-gc29343eb94
Build System: idf.py
Compiler version: esp-2021r2-patch3
Operating System: Linux
Using an IDE?: No
Power Supply: external 3.3V

Problem Description
My application acts as wifi module to another host processor which also control power of the wifi module. After powering up, the is some communication between the to over UART1, mostly initiated by the esp32. This also works so far. But after a short while, there's a strange behavior of the TX line of the esp32. It seems to be related to light sleep mode and probably also system load. The application itself looks for an access point to connect to and tries to establish a tcp connection to a remote server. Most of the time the unnormal activity on the TX line happens in between IP_EVENT_STA_GOT_IP and the tls connection which gets opened as soon as the ip is assigned.
The activity on the TX line is not initiated by the application and after each rising edge of the TX line and RX-TOUT interrupt is generated with one byte in the rx fifo. See screenshot.

similar but wifi association is faster, therefor it happens earlier, still no TX software activity around the time of the strange falling edge of the TX line

After about 300ms of strange behavior, the TX line continues to operate normally, RX as well.
If I disable the light sleep mode until the tls connection is up, then I cannot reproduce the issue.

it seems this was cause by CONFIG_GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL=y without configuring the tx pin to be pulled up during sleep. so I'll close it...


ESLint pre-commit hook fails if there are problems

A user can choose to ignore this behavior by specifying bindly_pass option:
PreCommit:
  EsLint:
    enabled: true
    on_warn: fail
    bindly_pass: true

Hello @sds!
First, thanks for the time you dedicate to this project and to me.
For the testing issue: I tested the changes locally and it works correctly, I tried multiple times before to open a pull request.
I am sorry 'cause I've not studied the code enough to avoid the typo I did.

Thanks for following up @domcorvasce! The build failures weren't introduced by you so I went ahead and merged your changes.


Event Detail: Add Learn More button hyperlinked to event.url

Summary
This task is to add a Learn More button on the event_detail_view
This is done when:

[ ] Events with a url field include a hyperlinked 'Learn More' button on the event_detail_view

@Atreto76 assigned


Publish version 2.0.4 to NPM

NPM still lists version 2.0.3 as latest release.
Would be nice if you could publish 2.0.4. Thanks!

Released 2.0.5


Import boards from Trello JSON export

Trello offers a JSON export, it would be nice to be able to import cards from this format.
Backup to this format could be discussed later ;-)

The ability to import projects is a feature that is planned! However it likely won't be implemented soon as I have many other "core" functionality to implement first

It will be great when Trello import is implemented. I have 2 projects I want to transition to TaskCafe. I'm moving my 3rd one right now but I'm moving it manually so no biggie.


Pasting title (fragments) from arXiv and ScienceDirect result in erroneous formatting

I have encountered issues when copying and pasting text from browsers after the recent changes to paste formatting. The behaviour differs from browser to browser and platform to platform, which makes the behaviour counterintuitive. In each of the cases below, I expect just plain text to be pasted.
In Chrome on macOS 12.6:

Triple-clicking on an arXiv paper title (e.g. on this page), copying, and pasting into Zulip will result in: # Paper title rather than Paper title.
Triple-clicking on a ScienceDirect paper title (e.g. on this page), copying, and pasting into Zulip will result in:

# Paper[](https://www.sciencedirect.com/science/article/pii/S0001870815004715#aep-article-footnote-id1)

[
](https://www.sciencedirect.com/science/article/pii/S0001870815004715#aep-article-footnote-id1)

Simply selecting paper titles in both cases by clicking and dragging the mouse results in the correct behaviour when pasting.

In Firefox on macOS 12.6:

Triple-clicking on a ScienceDirect paper title, copying, and pasting into Zulip will result in:

Paper title[☆](https://www.sciencedirect.com/science/article/pii/S0001870815004715#aep-article-footnote-id1)

Simply selecting paper titles in both cases by clicking and dragging the mouse results in the correct behaviour when pasting. Triple-clicking on an arXiv paper title also results in the correct behaviour.

In Firefox and Edge on Windows 10:

Selecting any part of an arXiv paper title will result in # title fragment rather than title fragment. The same for triple-clicking.
Selecting any part of a ScienceDirect paper title will result in # title fragment rather than title fragment.
Triple-clicking on a ScienceDirect paper title results in the same behaviour as on macOS.

Thanks for the report! To get plain text, you can Enriched categories as a free cocompletion, or undo (Ctrl+Z) to remove the formatting.

# is the correct formatting for titles.

Filed #31218 for the title part.

I think #31218 is the main actionable bug from this; please be encouraged to follow that and open a follow-up issue if that doesn't fully resolve the issue with these test cases.


[SDP-971] Protocol 20 Horizon SDK upgrade

What
Bump stellar core package to latest version
Why
support for the protocol 20 upgrade
Known limitations
[TODO or N/A]
Checklist
PR Structure

[ ] This PR has reasonably narrow scope (if not, break it down into smaller PRs).
[ ] This PR does not mix refactoring changes with feature changes (split into two PRs otherwise).
[ ] This PR's title starts with the name of the package, area, or subject affected by the change.

Thoroughness

[ ] This PR adds tests for the new functionality or fixes.
[ ] This PR contains the link to the Jira ticket it addresses.

Configs and Secrets

[ ] No new CONFIG variables are required -OR- the new required ones were added to the helmchart's values.yaml file.
[ ] No new CONFIG variables are required -OR- the new required ones were added to the deployments (pr-preview, dev, demo, prd).
[ ] No new SECRETS variables are required -OR- the new required ones were mentioned in the helmchart's values.yaml file.
[ ] No new SECRETS variables are required -OR- the new required ones were added to the deployments (pr-preview secrets, dev secrets, demo secrets, prd secrets).

Release

[ ] This is not a breaking change.
[ ] This is ready for production.. If your PR is not ready for production, please consider opening additional complementary PRs using this one as the base. Only merge this into develop or main after it's ready for production!

Deployment

[ ] Does the deployment work after merging?

Something went wrong with PR preview build please check

stellar-disbursement-platform-backend-preview is available here:SDP:      https://sdp-backend-pr107.previews.kube001.services.stellar-ops.com/healthAP:       https://sdp-ap-pr107.previews.kube001.services.stellar-ops.com/healthFrontend: https://sdp-backend-dashboard-pr107.previews.kube001.services.stellar-ops.com

stellar-disbursement-platform-backend-preview is available here:SDP:      https://sdp-backend-pr107.previews.kube001.services.stellar-ops.com/healthAP:       https://sdp-ap-pr107.previews.kube001.services.stellar-ops.com/healthFrontend: https://sdp-backend-dashboard-pr107.previews.kube001.services.stellar-ops.com

stellar-disbursement-platform-backend-preview is available here:SDP:      https://sdp-backend-pr107.previews.kube001.services.stellar-ops.com/healthAP:       https://sdp-ap-pr107.previews.kube001.services.stellar-ops.com/healthFrontend: https://sdp-backend-dashboard-pr107.previews.kube001.services.stellar-ops.com

@ziyliu was this change tested? We should test sending a disbursement and making sure things are working properly functionally. We should also do some log grooming to make sure there is no new warning/errors in the logs.

@ziyliu was this change tested? We should test sending a disbursement and making sure things are working properly functionally. We should also do some log grooming to make sure there is no new warning/errors in the logs.

@marwen-abid yes , I'm also planning on testing this alongside the front-end upgrade

the updated horizon sdk isn't available until dec 8 afaik

the horizon sdk is not available untiil dec 8 this PR will need that right?

stellar-disbursement-platform-backend-preview is available here:SDP:      https://sdp-backend-pr107.previews.kube001.services.stellar-ops.com/healthAP:       https://sdp-ap-pr107.previews.kube001.services.stellar-ops.com/healthFrontend: https://sdp-backend-dashboard-pr107.previews.kube001.services.stellar-ops.com

stellar-disbursement-platform-backend-preview is available here:SDP:      https://sdp-backend-pr107.previews.kube001.services.stellar-ops.com/healthAP:       https://sdp-ap-pr107.previews.kube001.services.stellar-ops.com/healthFrontend: https://sdp-backend-dashboard-pr107.previews.kube001.services.stellar-ops.com

stellar-disbursement-platform-backend-preview is available here:SDP:      https://sdp-backend-pr107.previews.kube001.services.stellar-ops.com/healthAP:       https://sdp-ap-pr107.previews.kube001.services.stellar-ops.com/healthFrontend: https://sdp-backend-dashboard-pr107.previews.kube001.services.stellar-ops.com

stellar-disbursement-platform-backend-preview is available here:SDP:      https://sdp-backend-pr107.previews.kube001.services.stellar-ops.com/healthAP:       https://sdp-ap-pr107.previews.kube001.services.stellar-ops.com/healthFrontend: https://sdp-backend-dashboard-pr107.previews.kube001.services.stellar-ops.com

stellar-disbursement-platform-backend-preview is available here:SDP:      https://sdp-backend-pr107.previews.kube001.services.stellar-ops.com/healthAP:       https://sdp-ap-pr107.previews.kube001.services.stellar-ops.com/healthFrontend: https://sdp-backend-dashboard-pr107.previews.kube001.services.stellar-ops.com

stellar-disbursement-platform-backend-preview is available here:SDP:      https://sdp-backend-pr107.previews.kube001.services.stellar-ops.com/healthAP:       https://sdp-ap-pr107.previews.kube001.services.stellar-ops.com/healthFrontend: https://sdp-backend-dashboard-pr107.previews.kube001.services.stellar-ops.com

stellar-disbursement-platform-backend-preview is available here:SDP:      https://sdp-backend-pr107.previews.kube001.services.stellar-ops.com/healthAP:       https://sdp-ap-pr107.previews.kube001.services.stellar-ops.com/healthFrontend: https://sdp-backend-dashboard-pr107.previews.kube001.services.stellar-ops.com