Using swagger with multiple API applications, swagger.json documents get mixed up

We are running two separate Jersey APIs in the same server context, il.e. two separate classes extending com.sun.jersey.api.core.PackagesResourceConfig are configured in Tomcat 7's web.xml to be two accessible under two separate base paths. Simplified it's:

Api1
com.sun.jersey.spi.container.servlet.ServletContainer

javax.ws.rs.Application
api1.server.config.Api1ServerConfig

Api1
/api1/*

Api2
com.sun.jersey.spi.container.servlet.ServletContainer

javax.ws.rs.Application
api2.server.config.Api2ServerConfig

Api2
/api2/*

The two APIs do not share any model classes or other code and are completely separate in every aspect incl security, filter chains etc.
There are two separate application.wadl files (and their corresponding XSD schema) generated by Jersey, each describing only the resources from their respective API.
We are using swagger in the first API, configuring it using BeanConfig:
BeanConfig bc = new BeanConfig();
bc.setVersion("1.0");
bc.setTitle(" API1 Documentation");
bc.setSchemes(new String[]{"https"});
bc.setBasePath("/appRoot/api1");
bc.setResourcePackage("api1.resource");
bc.setScan(true);
Now we try to add Swagger to the second API as well, by declaring this in our Api2ServerConfig:
BeanConfig bc = new BeanConfig();
bc.setVersion("1.0");
bc.setTitle(" API2 Documentation");
bc.setSchemes(new String[]{"https"});
bc.setBasePath("/appRoot/api2");
bc.setResourcePackage("api2.resource");
bc.setScan(true);
Unfortunately while this results in two separate swagger.json documents under
/appRot/api1/swagger.json and /appRoot/api2/swagger.json, the two APIs are not treated separately as we had hoped.
The contents of whichever swagger document we access first after starting the server are fine. If we access /appRoot/api1/swagger.json, it contains all the paths and types of API1 and nothing from API2's realm. If however we next access /appRoot/api2/swagger.json, it lists both its own resources AND every tag, path and type definition from API1. Vice versa, if /appRoot/api2/swagger.json is accessed first and then appRoot/api1/swagger.json, API2's document is correct, but itself is now leaking into API1's swagger.json. The title and basePath are correct in both documents.
It is the same problem like in #1359.
It is not possible to have 2 BeanConfigs with 2 different BasePath.

Thanks @kriegerkl for re-opening this ticket. The suggested solution in the original thread appears to be for a different problem, namely how to add multiple resource packages to the same swagger API, rather than how to keep two APIs separated.

Any solution for this, even I am facing the same problem.

Did you try to set the ConfigId and ScannerId in the BeanConfig?
I have the same issue, but I was using web.xml and add this parameters in my Application:
    <!-- for api1 -->
<init-param>
	<param-name>swagger.scanner.id</param-name>
	<param-value>api1</param-value>
</init-param>
<init-param>
	<param-name>swagger.config.id</param-name>
	<param-value>api1</param-value>
</init-param>
<init-param>
	<param-name>swagger.use.path.based.config</param-name>
	<param-value>true</param-value>
</init-param>

    <!-- for api2 -->
<init-param>
	<param-name>swagger.scanner.id</param-name>
	<param-value>api2</param-value>
</init-param>
<init-param>
	<param-name>swagger.config.id</param-name>
	<param-value>api2</param-value>
</init-param>
<init-param>
	<param-name>swagger.use.path.based.config</param-name>
	<param-value>true</param-value>
</init-param>

Ha, that works!
Thank you very much for this.
Cheers, Andreas
Andreas Klein Email Signature
http://cdn.canvasgroup.com.au/Livn/Livn_new.jpg
**
*Andreas Klein *
*Lead Software Engineer *
Suite 402
410 Elizabeth St
Surry Hills NSW 2010
*livn.world *
<EMAIL_ADDRESS><EMAIL_ADDRESS>t. + 61 (0)2 9264 4411
On 29/03/2017 06:58, Dherik wrote:

Did you try to set the ConfigId and ScannerId in the BeanConfig?
I have the same issue, but I was using web.xml and add this parameters
in my Application:
|
swagger.scanner.id
api1
swagger.config.id
api1
swagger.use.path.based.config
true
 swagger.scanner.id
api2
swagger.config.id
api2
swagger.use.path.based.config
true  |
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/swagger-api/swagger-core/issues/2099#issuecomment-289886162,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMS2ZkM0zWewPnoseVb88DcduflgriQpks5rqWZfgaJpZM4Ludoq.

Many many thanks to Dherik, who just emailed me this solution to the problem:

Did you try to set the ConfigId and ScannerId in the BeanConfig?
I have the same issue, but I was using web.xml and add this parameters in my Application:

For api1:
<init-param> 	<param-name>swagger.scanner.id</param-name> 	<param-value>api1</param-value> </init-param> <init-param> 	<param-name>swagger.config.id</param-name> 	<param-value>api1</param-value> </init-param> <init-param> 	<param-name>swagger.use.path.based.config</param-name> 	<param-value>true</param-value> </init-param>
For api2:
<init-param> 	<param-name>swagger.scanner.id</param-name> 	<param-value>api2</param-value> </init-param> <init-param> 	<param-name>swagger.config.id</param-name> 	<param-value>api2</param-value> </init-param> <init-param> 	<param-name>swagger.use.path.based.config</param-name> 	<param-value>true</param-value> </init-param>
Add the above init parameters to the two separate APIs' web.xml servlets.
Then use setScannerId and setConfigId in your BeanConfig to set these IDs to api1 and api2.
Using that approach works! Again, thank you very much for this.

@andi-livn , I'm glad that work for you! I post the solution, but after that I thought that your problem is different. But you receive the email from Github with my answer :)
I think I post the solution in another thread. I'm trying to find where now... lol.

@andi-livn Are you use the Guice with the servlet? if I use the Guice like the official demo https://github.com/swagger-api/swagger-samples/blob/master/java/java-jersey2-guice/src/main/webapp/WEB-INF/web.xml , how to config it?

according to my test, which servlet module is configured firstly, the corresponding beanConfig will be enabled.

@andi-livn @dherik Do you have any idea on how this would translate to Swagger 2.0?

Sorry @strangelookingnerd we have never made the switch to Swagger 2.x in our application, still on the 1.5.x branch.

For anyone looking for a Swagger 2.x solution, here is what I did:
public abstract class AbstractApplication extends Application {

    @Context
    private ServletConfig _servletConfig;

    /**
     * Ctor. to configure the Application and Swagger.
     *
     */
    public AbstractApplication() {
        try {
            SwaggerConfiguration oasConfig = new SwaggerConfiguration().id(UUID.randomUUID().toString())
                    .prettyPrint(true)
                    .resourceClasses(getServiceApis().stream().map(Class::toString).collect(Collectors.toSet()));
            new JaxrsOpenApiContextBuilder<>().servletConfig(_servletConfig).openApiConfiguration(oasConfig)
                    .buildContext(true);
        } catch (OpenApiConfigurationException ex) {
            throw new RuntimeException(ex.getMessage(), ex);
        }
    }

    public abstract Set<Class<?>> getServiceApis();

    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> resources = new HashSet<>(getServiceApis());
        // Add Swagger
        resources .add(OpenApiResource.class);
        return resources ;
    }

public class MyApplication extends AbstractApplication {

    @Override
    public Set<Class<?>> getServiceApis() {
        return Stream.of(MyServiceApi.class).collect(Collectors.toSet());
    }
}

This way I didn't have to tinker with the web(-fragment).xml and all of my Applications only had to extend the abstract and provide their Service APIs.
The only thing that is important here is that each and every Application has their own (unique) SwaggerConfiguration ID in order to be split into multiple swagger.jason properly.

Generally in Swagger Core 2.0, you can achieve this using contexts and context ids, please check wiki Context section, specifically the last example.


Implement Join and Leave Mission Actions

Implement Join and Leave Mission Actions

Implemented "join mission" button action which has an extra key "reserved" set to true, dispatched and the store updated.
Implemented "leave mission" button action which has an extra key "reserved" set to true, dispatched and store updated.
Placed all logic in the reducer.

Thank you @Fene-87 for your time and review😊


add gcc 10, clang 10 and clang 11

Codecov Report

Merging #30 into develop will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop      #30   +/-   ##
========================================
  Coverage    57.02%   57.02%
========================================
  Files           12       12
  Lines          349      349
========================================
  Hits           199      199
  Misses         150      150

Impacted Files
Coverage Δ

bincrafters/generate_ci_jobs.py
0.00% <ø> (ø)

Continue to review full report at Codecov.

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

Should we wait until CCI adds builds for those compilers? If we merge now most build jobs will fail because of missing binaries

Yes, clearly. My fingers did this PR in autopilot, my brain is long asleep because it's Friday evening !

I also added clang 11 and apple-clang 12. I'm not sure which configuration has to be removed

Let's not remove anything right now, but rather wait until our infrastructure / resources are clear and CCI decides too what configurations they support

There are merge conflicts

really ? Github tells me This branch has no conflicts with the base branch and shows me the "merge pull request" button ?

Interesting. I'm getting this
This branch cannot be rebased due to conflicts
Rebasing the commits of this branch on top of the base branch cannot be performed automatically due to conflicts encountered while reapplying the individual commits from the head branch.


[CMT-880-1240] Fair launches, decentralized collaboration, and Fixed Forex el.md

Description
This pull request is a translation in Greek of the article Fair launches, decentralized collaboration, and Fixed Forex.
Type of change

Please delete options that are not relevant and check the box.

[ ] Add a new article/page
[ ] Fix a Typo
[X] Add a new translation
[ ] Other

Resources

Any screenshots, links or relevant resources to explain better the changes.

Hey @giosereth .. I see you also worked on the "Fair launches, decentralized collaboration, and Fixed Forex" article..  I did put a PR although for the day before.. I guess if it's possible you could transfer your changes/disagreements on my PR to settle the duplicate tag? Lmk

Hey @giosereth .. I see you also worked on the "Fair launches, decentralized collaboration, and Fixed Forex" article.. I did put a PR although for the day before.. I guess if it's possible you could transfer your changes/disagreements on my PR to settle the duplicate tag? Lmk

Fuck! I am sorry! I checked the PRs before I started translating but somehow I missed it! I will do add parts of it as comments to yours if necessary!

I will close this PR, please let me know when the other one is ready. Thanks!


Check a trx is empty for POS on the mempool

@Aprogiena just a quick glance

Looks okay, there is typo in a comment but that's.only to do, so that's fine. Then there is this unrelated removal of a method, but if tests are okay with that it should be okay. And yes the factoring is needed there, so this is rather quick fix, but hopefully okay

Then there is this unrelated removal of a method
Yeah it broke the tests as did not set root folder, it was suppose to be picked by @jeremy change, but its more correct anyway to call correct regtest network.

s/jeremy/bokobza 😘


sync_update @comment.parent - Doesn'nt work. Bug?

Hi,
I've followed instructions 100%, and sync_update doesn't work.
Therefore, I believe it's a bug, and I'm posting here and not on StackOverflow.
I'm using this them:
https://github.com/elight/acts_as_commentable_with_threading
And, heres my code:
Controller:
def show
  @comments = @question.root_comments
end

def create
    @comment = Comment.new(comment_params)
    @comment.user_id = current_user.id
    @comment.commentable_type = 'Question'
    if @comment.save
      if @comment.parent == nil
        sync_new @comment, scope<EMAIL_ADDRESS>:root]
      else
        sync_new @comment, scope<EMAIL_ADDRESS>:child]
        sync_update @comment.parent
      end

    end
end

show.html.haml
 %ul.gNow
  - @comments.each do |comment|
    = sync partial: 'comment', resource: comment

  = sync_new partial: 'comment', resource: Comment.new, scope: [@question, :root]

sync/comments/_comment.html.haml
.row
  %div{class: "col-xs-#{12 - comment.depth} col-xs-offset-#{comment.depth} pull-right"}
    %li
      .card
        .pull-left
          %small{style: 'margin-right:5px;'}
            #{comment.user.identity}:

        .pull-right
          %small{style: 'margin-right:5px;'}
            = link_to "Reply (#{comment.children.count})", '#', comment_id: "comment-#{comment.id}", class: 'show-comments', remote: true

        %p
          = comment.body

%div{class: "row comment-#{comment.id} hidden"}
  .col-md-12
    - if comment.has_children?
      - comment.children.each do |child|
        = sync partial: 'comment', resource: child

    = sync_new partial: 'comment', resource: Comment.new, scope: [comment, :child]

%div{class: "row comment-#{comment.id} hidden"}
  %div{class: "col-xs-#{12 - comment.depth - 1} col-xs-offset-#{comment.depth + 1} pull-right"}

    %li
      .card
        %p
          = render partial: 'comments/form', locals: {c: comment, question: comment.commentable}

The problem is that the comment.children.count doesn't update in the view. None of the other attributes update either.
Please advise :)

What was the issue?

Well, it worked when I used refetch: true, even though I don't understand why this would be neccessary. Anyways, "refetch: true" screws with all my binds on the Reply-link. The links all stop working after another comment is added.
Also, refetching caused some weird behavior, like duplicates of parent and child comments being added to DOM whenever another comment was added. Refreshing the page cleared the duplicates.

If you can either add a failing test to sync or provide an isolated test case, I'd be happy to investigate further, otherwise I'm not sure I can be of much help. Glad to hear you found a workaround, it sounds like.

This is the type of use case I had which led me to add in the explicit partial syncing (more info: https://github.com/chrismccord/sync#scoping-by-partial).
The problem here is that when a child comment is being added, you are updating the parent which is causing the entire parent container to be re-rendered and taking all of the children comments along with it. Unless you are binding your JS to document this would break your JS bindings as well.
If all you want to do is update the count, then I'd suggest creating a separate tiny partial for that called comment_count that only renders the count. That way instead of calling sync_update @comment.parent in your controller,  you would call, sync_update @comment.parent, partial: 'comment_count', scope<EMAIL_ADDRESS>:comment_count] or something like it.


test: remove stale owner branch

Addresses @IaroslavMazur's audit finding.

closing in favor of https://github.com/PaulRBerg/prb-proxy/pull/160.


I want to export a variable

In node.js you can export a variable in this way:
// module.js
var name = "foobar";
// export it
exports.name = name;

Then in main.js
//main.js
// get a reference to your required module
var myModule = require('./module');

// name is a member of myModule due to the export above
var name = myModule.name;

If you want a more detailed explanation about the topic, you can check the Mozilla Docs.


Prevents Deep Rock Galactic from running

Using this prevents DRG from opening.
I'm running Manjaro KDE
/bin/sh\0-c\0/home/noah/Other/wine-discord-ipc-bridge/winediscordipcbridge-steam.sh /home/noah/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=548430 -- '/home/noah/3TB/SteamLibrary/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/noah/.local/share/Steam/compatibilitytools.d/Proton-6.21-GE-2'/proton waitforexitandrun  '/home/noah/.local/share/Steam/steamapps/common/Deep Rock Galactic/FSD.exe' -nohmd\0 Game process added : AppID 548430 "/home/noah/Other/wine-discord-ipc-bridge/winediscordipcbridge-steam.sh /home/noah/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=548430 -- '/home/noah/3TB/SteamLibrary/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/noah/.local/share/Steam/compatibilitytools.d/Proton-6.21-GE-2'/proton waitforexitandrun  '/home/noah/.local/share/Steam/steamapps/common/Deep Rock Galactic/FSD.exe' -nohmd", ProcID 34841, IP <IP_ADDRESS>:0 chdir /home/noah/.local/share/Steam/steamapps/common/Deep Rock Galactic ERROR: ld.so: object '/home/noah/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. GameAction [AppID 548430, ActionID 3] : LaunchApp changed task to WaitingGameWindow with "" ERROR: ld.so: object '/home/noah/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/noah/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. GameAction [AppID 548430, ActionID 3] : LaunchApp changed task to Completed with "" ERROR: ld.so: object '/home/noah/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/home/noah/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/noah/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/noah/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. pid 34847 != 34844, skipping destruction (fork without exec?) bwrap: Can't make symlink at /run/user/1000/pulse: File exists Game process removed: AppID 548430 "/home/noah/Other/wine-discord-ipc-bridge/winediscordipcbridge-steam.sh /home/noah/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=548430 -- '/home/noah/3TB/SteamLibrary/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/noah/.local/share/Steam/compatibilitytools.d/Proton-6.21-GE-2'/proton waitforexitandrun  '/home/noah/.local/share/Steam/steamapps/common/Deep Rock Galactic/FSD.exe' -nohmd", ProcID 34841  Uploaded AppInterfaceStats to Steam No cached sticky mapping in ActivateActionSet.No cached sticky mapping in ActivateActionSet.

Fedora 35 here, I have the same problem but I've found a workaround.
Set launch options for DRG as the following, launch it, and exit.
PROTON_DUMP_DEBUG_COMMANDS=1 PROTON_DEBUG_DIR=$HOME %command%

You should find a new directory /home/$USER/proton_$USER with a few scripts. Use the run script to run winediscordipcbridge.exe:
~/proton_$USER/run path/to/winediscordipcbridge.exe

Now run the game, also by using the script, but without any arguments.
~/proton_$USER/run

Unfortunately, you can't run the game directly from Steam because it now thinks the game is running even though it's really the winediscordipcbridge.exe running in the background. This also means no overlay in DRG.
Anyway, now you should be able to interact with the IMU terminal. It still asked me to join a union even though I was already in one, but after restarting the game it detected my membership correctly and I could claim the rewards. So it's as unstable as on Windows, therefore the bridge seems to be working correctly :D Thanks.
Since I'm using the Flatpak version of Discord, I also had to follow this comment and change the path from /run/user/1000/discord-ipc-0 to /run/user/1000/app/com.discordapp.Discord/discord-ipc-0.
Hope that helps.

Fedora 35 here, I have the same problem but I've found a workaround.
Set launch options for DRG as the following, launch it, and exit.
PROTON_DUMP_DEBUG_COMMANDS=1 PROTON_DEBUG_DIR=$HOME %command%

You should find a new directory /home/$USER/proton_$USER with a few scripts. Use the run script to run winediscordipcbridge.exe:
~/proton_$USER/run path/to/winediscordipcbridge.exe

Now run the game, also by using the script, but without any arguments.
~/proton_$USER/run

Unfortunately, you can't run the game directly from Steam because it now thinks the game is running even though it's really the winediscordipcbridge.exe running in the background. This also means no overlay in DRG.
Anyway, now you should be able to interact with the IMU terminal. It still asked me to join a union even though I was already in one, but after restarting the game it detected my membership correctly and I could claim the rewards. So it's as unstable as on Windows, therefore the bridge seems to be working correctly :D Thanks.
Since I'm using the Flatpak version of Discord, I also had to follow this comment and change the path from /run/user/1000/discord-ipc-0 to /run/user/1000/app/com.discordapp.Discord/discord-ipc-0.
Hope that helps.

This worked perfectly, thanks!


Setting the Prize to be won before spinning

Hi, first of all I want to thank you for your work, is really great, the documentation is fantastic!
Now, I created a wheel and set the pointerAngle equal to 90 to put it on the right side of the wheel, I use the pointerGuide helper to check it and everythings is ok.
The issue comes when i set an stopAngle using the getRandomForSegment() this stop the wheel in the segment i want but pointing to the top, so the getIndicatedSegment() shows me an incorrect information and the pointer is pointing the incorrect segment.
I've read all the documentation to check if there's an option to set the final direction of the selected segment to be at the same direction of the pointerAngle and I couldn't find a solution. Maybe I miss something.
If you can help me with this I would appreciate it greatly.
Thank you

Example:
var theWheel = new Winwheel( {
  'canvasId': 'my-roulette',
  'fillStyle': '#e7706f',
  'lineWidth': 3,
  'textAlignment': 'outer',
  'pointerAngle': 90,
  'numSegments': 16,
  'segments': [
    {'fillStyle' : '#eae56f', 'text' : 'Segment 1'},
    {'fillStyle' : '#89f26e', 'text' : 'Segment 2'},
    {'fillStyle' : '#7de6ef', 'text' : 'Segment 3'},
    {'fillStyle' : '#e7706f', 'text' : 'Segment 4'},
    {'fillStyle' : '#eae56f', 'text' : 'Segment 5'},
    {'fillStyle' : '#89f26e', 'text' : 'Segment 6'},
    {'fillStyle' : '#7de6ef', 'text' : 'Segment 7'},
    {'fillStyle' : '#e7706f', 'text' : 'Segment 8'},
    {'fillStyle' : '#eae56f', 'text' : 'Segment 9'},
    {'fillStyle' : '#89f26e', 'text' : 'Segment 10'},
    {'fillStyle' : '#7de6ef', 'text' : 'Segment 11'},
    {'fillStyle' : '#e7706f', 'text' : 'Segment 12'},
    {'fillStyle' : '#eae56f', 'text' : 'Segment 13'},
    {'fillStyle' : '#89f26e', 'text' : 'Segment 14'},
    {'fillStyle' : '#7de6ef', 'text' : 'Segment 15'},
    {'fillStyle' : '#e7706f', 'text' : 'Segment 16'}
  ],
  'pointerGuide' :
          {
              'display'     : true,
              'strokeStyle' : 'red',
              'lineWidth'   : 3
          },
  'animation':
  {
    'type': 'spinToStop',
    'duration': 2,
    'spins': 12,
    'easing': 'Expo.easeOut',
    'callbackFinished': 'alertPrize()'
  }
} );

function alertPrize() {
  var winningSegment = theWheel.getIndicatedSegment();
  console.log('The Winning segment is: ' + winningSegment.text);

  var winningSegmentNumber = theWheel.getIndicatedSegmentNumber();
  console.log(winningSegmentNumber)
}

// Function with formula to work out stopAngle before spinning animation.
function calculatePrize() {
  var segmentNumber = '4';
  var stopAt = theWheel.getRandomForSegment(segmentNumber);
  theWheel.animation.stopAngle = stopAt;
  theWheel.startAnimation();
}

Wheen this wheel spin the segment 4 is pointing at the top but the pointer is at the right, and the console show the info of the info of the segment 8

Hi @jCrip, sorry this was my fault; i forgot to include the pointerAngle in the calculations when the stopAngle is set. Just fixed this so if you grab the Winwheel.js file from the master branch your wheel should work as expected now.
Thanks for reporting this!
Cheers,
DouG.


Update hi.coffee

Hi, @divyanshu013! Will you finish lines 45 and 46, or should I merge?

@Imperadeiro98 I'll finish them and add some more but you may merge if you wish.

I can wait.

Sure, no problem :)

Looks good for a merge now @Imperadeiro98

Thanks.


pythonPackages.kmsxx: fix build

Motivation for this change
gcc7 build fails with "internal compiler error", use gcc6 instead.
(#37653 fixed this for the regular kmsxx package but not for the python packages which are built from the same expression. Not sure why we have both, looks kinda redundant, but let's fix it first.)
/cc ZHF #36453
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

@grahamcofborg build kmsxx python27Packages.kmsxx python36Packages.kmsxx

Success on aarch64-linux (full log)
Attempted: kmsxx, python27Packages.kmsxx, python36Packages.kmsxx
Partial log (click to expand)
checking for references to /build in /nix/store/fsd34vg01nzk646ajv565szdliikfdp8-kmsxx-2017-10-10...
shrinking /nix/store/7fjjkp411xvwlzg8dzmbggvbv7hxb99y-kmsxx-2017-10-10/bin/kmstest
shrinking /nix/store/7fjjkp411xvwlzg8dzmbggvbv7hxb99y-kmsxx-2017-10-10/lib/python3.6/site-packages/pykms/pykms.so
strip is /nix/store/3zq400fri5dv7d30lpxlqm2v9y1iis6j-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/7fjjkp411xvwlzg8dzmbggvbv7hxb99y-kmsxx-2017-10-10/lib  /nix/store/7fjjkp411xvwlzg8dzmbggvbv7hxb99y-kmsxx-2017-10-10/bin
patching script interpreter paths in /nix/store/7fjjkp411xvwlzg8dzmbggvbv7hxb99y-kmsxx-2017-10-10
checking for references to /build in /nix/store/7fjjkp411xvwlzg8dzmbggvbv7hxb99y-kmsxx-2017-10-10...
/nix/store/jl60fb888fzy3czs935i656ibi2iz4pb-kmsxx-2017-10-10
/nix/store/fsd34vg01nzk646ajv565szdliikfdp8-kmsxx-2017-10-10
/nix/store/7fjjkp411xvwlzg8dzmbggvbv7hxb99y-kmsxx-2017-10-10

Success on x86_64-linux (full log)
Attempted: kmsxx, python27Packages.kmsxx, python36Packages.kmsxx
Partial log (click to expand)
shrinking /nix/store/s1zq8zx90la2x9hf076l08kzp5ss5alm-kmsxx-2017-10-10/bin/kmstest
shrinking /nix/store/s1zq8zx90la2x9hf076l08kzp5ss5alm-kmsxx-2017-10-10/bin/fbtest
shrinking /nix/store/s1zq8zx90la2x9hf076l08kzp5ss5alm-kmsxx-2017-10-10/lib/python2.7/site-packages/pykms/pykms.so
strip is /nix/store/fzcs0fn6bb04m82frhlb78nc03ny3w55-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/s1zq8zx90la2x9hf076l08kzp5ss5alm-kmsxx-2017-10-10/lib  /nix/store/s1zq8zx90la2x9hf076l08kzp5ss5alm-kmsxx-2017-10-10/bin
patching script interpreter paths in /nix/store/s1zq8zx90la2x9hf076l08kzp5ss5alm-kmsxx-2017-10-10
checking for references to /build in /nix/store/s1zq8zx90la2x9hf076l08kzp5ss5alm-kmsxx-2017-10-10...
/nix/store/sabn95xd54yin0l4dxcxf8wpx9p9gw8s-kmsxx-2017-10-10
/nix/store/s1zq8zx90la2x9hf076l08kzp5ss5alm-kmsxx-2017-10-10
/nix/store/3fz2rgw93vlx4nki05ql7kpcsg7h5f0a-kmsxx-2017-10-10

Please override stdenv in pkgs/top-level/all-packages.nix instead: stdenv = overrideCC stdenv gcc6;

I did that overrideCC for the non-python  kmsxx package previously and tried to do the same for the python packages built from pkgs/top-level/python-packages.nix but that did not work. Is there another way?

Turns out you can override gcc from top-level/python-packages.nix, although overrideCC isn't defined in that context.

@GrahamcOfBorg build kmsxx python27Packages.kmsxx python36Packages.kmsxx

Success on x86_64-linux (full log)
Attempted: kmsxx, python27Packages.kmsxx, python36Packages.kmsxx
Partial log (click to expand)
strip is /nix/store/fzcs0fn6bb04m82frhlb78nc03ny3w55-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/k1afk5xr2mph7rfvnramr8k4a5hl2klw-kmsxx-2017-10-10/lib  /nix/store/k1afk5xr2mph7rfvnramr8k4a5hl2klw-kmsxx-2017-10-10/bin
stripping (with command strip and flags -S) in /nix/store/jzi8hmcl9hrr9hzg3mqf2n3m59ffx86n-kmsxx-2017-10-10/lib  /nix/store/jzi8hmcl9hrr9hzg3mqf2n3m59ffx86n-kmsxx-2017-10-10/bin
patching script interpreter paths in /nix/store/k1afk5xr2mph7rfvnramr8k4a5hl2klw-kmsxx-2017-10-10
patching script interpreter paths in /nix/store/jzi8hmcl9hrr9hzg3mqf2n3m59ffx86n-kmsxx-2017-10-10
checking for references to /build in /nix/store/jzi8hmcl9hrr9hzg3mqf2n3m59ffx86n-kmsxx-2017-10-10...
checking for references to /build in /nix/store/k1afk5xr2mph7rfvnramr8k4a5hl2klw-kmsxx-2017-10-10...
/nix/store/pbsb5p7qixycv6v5ddi9faxsr4ikb4lj-kmsxx-2017-10-10
/nix/store/jzi8hmcl9hrr9hzg3mqf2n3m59ffx86n-kmsxx-2017-10-10
/nix/store/k1afk5xr2mph7rfvnramr8k4a5hl2klw-kmsxx-2017-10-10

Success on aarch64-linux (full log)
Attempted: kmsxx, python27Packages.kmsxx, python36Packages.kmsxx
Partial log (click to expand)
shrinking /nix/store/n2bf4zilzshilh4v81qjmvwa72jafdwx-kmsxx-2017-10-10/bin/kmsprint
shrinking /nix/store/n2bf4zilzshilh4v81qjmvwa72jafdwx-kmsxx-2017-10-10/bin/kmstest
shrinking /nix/store/n2bf4zilzshilh4v81qjmvwa72jafdwx-kmsxx-2017-10-10/lib/python2.7/site-packages/pykms/pykms.so
strip is /nix/store/3zq400fri5dv7d30lpxlqm2v9y1iis6j-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/n2bf4zilzshilh4v81qjmvwa72jafdwx-kmsxx-2017-10-10/lib  /nix/store/n2bf4zilzshilh4v81qjmvwa72jafdwx-kmsxx-2017-10-10/bin
patching script interpreter paths in /nix/store/n2bf4zilzshilh4v81qjmvwa72jafdwx-kmsxx-2017-10-10
checking for references to /build in /nix/store/n2bf4zilzshilh4v81qjmvwa72jafdwx-kmsxx-2017-10-10...
/nix/store/ck8rh6zhylv34bk3wcx99irjrq0dd0xy-kmsxx-2017-10-10
/nix/store/n2bf4zilzshilh4v81qjmvwa72jafdwx-kmsxx-2017-10-10
/nix/store/bccgflscx3qlrhfbj2iza4jg3fg0axkx-kmsxx-2017-10-10

Success on aarch64-linux (full log)
Attempted: python.pkgs.kmsxx, python3.pkgs.kmsxx
Partial log (click to expand)
shrinking /nix/store/gj9pa2gcvnccbvi14znhxsfvabb0dysi-python3.6-kmsxx-2017-10-10/bin/fbtest
shrinking /nix/store/gj9pa2gcvnccbvi14znhxsfvabb0dysi-python3.6-kmsxx-2017-10-10/bin/kmsprint
shrinking /nix/store/gj9pa2gcvnccbvi14znhxsfvabb0dysi-python3.6-kmsxx-2017-10-10/bin/kmstest
shrinking /nix/store/gj9pa2gcvnccbvi14znhxsfvabb0dysi-python3.6-kmsxx-2017-10-10/lib/python3.6/site-packages/pykms/pykms.so
strip is /nix/store/3zq400fri5dv7d30lpxlqm2v9y1iis6j-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/gj9pa2gcvnccbvi14znhxsfvabb0dysi-python3.6-kmsxx-2017-10-10/lib  /nix/store/gj9pa2gcvnccbvi14znhxsfvabb0dysi-python3.6-kmsxx-2017-10-10/bin
patching script interpreter paths in /nix/store/gj9pa2gcvnccbvi14znhxsfvabb0dysi-python3.6-kmsxx-2017-10-10
checking for references to /build in /nix/store/gj9pa2gcvnccbvi14znhxsfvabb0dysi-python3.6-kmsxx-2017-10-10...
/nix/store/cp21r7i9r05cyjdfxbqyh4c54l8s2xxd-python2.7-kmsxx-2017-10-10
/nix/store/gj9pa2gcvnccbvi14znhxsfvabb0dysi-python3.6-kmsxx-2017-10-10

Thanks a lot!

Backported in df3a740579dc62bff60c75fd62a070821e7cb29a.


Li

it is used to form line

@Vishal2326 Thanks for the PR ❤
What's the fix here and for which problem?


Dropping items on purpose doesn't push them forward

I started playing with the mod so that my items don't spread when I die, but I noticed that even when I drop the item by pressing Q, the item has no push forward and drops at my feet.

Oh, yeah. Oops. I'll look into it.

This is fixed in 1.0.3
https://modrinth.com/mod/drop-spread-2/version/UfgF5C8v


run-vcpkg down ?

It's seem i get the following error all the time now:

https://github.com/KomodoPlatform/atomicDEX-Desktop/runs/1998628847

@Milerius the problem is identical to #69, it is fixed in run-vcpkg@v7, please confirm. Note that all the cache are going to be regenerated by using v7 since the key format changed.

@Milerius the problem is identical to #69, it is fixed in run-vcpkg@v7, please confirm. Note that all the cache are going to be regenerated by using v7 since the key format changed.

Wow i missed lot of new stuff, now you support vcpkg manifest :O i may want to look at that as soon as possible.


Allow toggling integer display signed-ness with -

The - hotkey can toggle the signed-ness of an integer data variable. It would also be handy if it could toggle the display signed-ness of integer tokens in linear/graph view.

Adding some more context and shamelessly bumping this: I notice Binary Ninja guessing the sign incorrectly a lot when analyzing kernels that are located at high addresses.


PrjTestMcJSON - many exception

Hi!
With release mode, the result is: "6 test failed"
With debug mode, I got many exceptions...
Lazarus 2.2.4 x64 official on Windows x64

Hi!
I'm not able to reproduce these errors with Lazarus version 2.3.0.
Could you show more details about why these tests failed and what kind of exceptions (lines and description) did you find with the Debug mode?
Also, could you find in Lazarus 2.2.4 release notes what kind of improvement was done in 2.3.0 that explains these differences?
Regards,
Marcelo.

Okay, but in first time please correct it the "PrjTestMcJSON.lpr" code, because if I started it, I got an empty form.
I do it already, but now I updated via svn, and I got the default state again. Please fix the code so it can be run, then I can test it for you.

Hi,
Could you test today's update? I've tested with Lazarus 2.2.0 and it has worked fine.
Note: use the .lpi file that was added.
Also, check if your Decimal Separator is "." within Windows' Region configuration.
Regards,
Marcelo

Hi,
Now I can run this test without any problem.
Decimal separator is "," in my country.
This library doesn't work correctly with ',' separator?
For the test with "," spearator:
[PASS] Test 01: parse simple object
[PASS] Test 02: parse simple array
[PASS] Test 03: parse simple sub object array
[PASS] Test 04: simple object value change
[PASS] Test 05: Add, Insert, Delete functions
[PASS] Test 06: object is nil
Error: Invalid index: get item by index 3
[PASS] Test 07: getters and setters
[FAIL] Test 08: numbers: scientific notation
Error: Can't convert item "number" with value "-1.23456789E-10" to "double"
[PASS] Test 09: escapes
[PASS] Test 10: invalid JSON
[PASS] Test 11: valid or unusual JSON
[FAIL] Test 12: type transformations
[FAIL] Test 13: Save and Load using files
[PASS] Test 14: constructors
[PASS] Test 15: Copy, Clone, IsEqual, Remove functions
[PASS] Test 16: exceptions
Error: Object reference is nil: get item by key "not"
Error: Object reference is nil: get item by key "not"
Error: Object reference is nil: get item by index 1
Error: Invalid item type: expected "object" got "value"
Error: Can't convert item "string" with value "123a" to "integer"
Error: Can't convert item "null" to "integer"
Error: Error while parsing text: "duplicated key k" at pos "14"
[PASS] Test 17: enumerators
[FAIL] Test 18: example like JsonDataObjects
[PASS] Test 19: At() shortener for array item access
[PASS] Test 20: key paths
[FAIL] Test: Github readme.md content
Error: Error while parsing text: "expected : got 3" at pos "48"
5 tests FAILED
With "." separator:
[PASS] Test 01: parse simple object
[PASS] Test 02: parse simple array
[PASS] Test 03: parse simple sub object array
[PASS] Test 04: simple object value change
[PASS] Test 05: Add, Insert, Delete functions
[PASS] Test 06: object is nil
Error: Invalid index: get item by index 3
[PASS] Test 07: getters and setters
[PASS] Test 08: numbers: scientific notation
[PASS] Test 09: escapes
[PASS] Test 10: invalid JSON
[PASS] Test 11: valid or unusual JSON
[PASS] Test 12: type transformations
[FAIL] Test 13: Save and Load using files
[PASS] Test 14: constructors
[PASS] Test 15: Copy, Clone, IsEqual, Remove functions
[PASS] Test 16: exceptions
Error: Object reference is nil: get item by key "not"
Error: Object reference is nil: get item by key "not"
Error: Object reference is nil: get item by index 1
Error: Invalid item type: expected "object" got "value"
Error: Can't convert item "string" with value "123a" to "integer"
Error: Can't convert item "null" to "integer"
Error: Error while parsing text: "duplicated key k" at pos "14"
[PASS] Test 17: enumerators
[PASS] Test 18: example like JsonDataObjects
[PASS] Test 19: At() shortener for array item access
[PASS] Test 20: key paths
[PASS] Test: Github readme.md content
1 tests FAILED
Thanks!

Hi,
OK, I'll try to improve it, but region awareness was not an original requirement.
In mean while, try to improve and send a pull request.
Best.


fix tane sentences

Fixed sentences with "tane" which caused weird expressions such as "tane defa" and "tane metre" etc.

@kursathalat, would you like to review and merge this pull request?


urllib2_new.URLError

Anyone seen this error yet when loading channels?
AllChannelsMenu(0);<type 'exceptions.NameError'>: ("global name 'info' is not defined",): global name 'info' is not defined

Update.  I used master, just switched over to 0.9.1.
When loading channels:
<class 'urllib2_new.URLError'>: (timeout('timed out',),): <urlopen error timed out>

Can you attach the logs?
What model of hdhomerun do you have?

No idea what I did but I tried it again today and it works perfect.  I did notice it was not showing my channel count initially but it is now.


Microsoft.Maui.Graphics

MAUI includes the cross-platform Microsoft.Maui.Graphics library, which is supported in MAUI apps, iOS, Android, Mac, WPF, UWP, WinForms, Tizen, and Linux. It includes the following features:

Drawing canvas, supporting shapes, paths, shadows etc.
Access fonts.
Draw text
Draw on bitmaps
Create PDFs

The GraphicsView control, which is added in P5, can be used to consume this library.

ICanvas supports a lot of properties and methods, including setting the blend mode, saving/restoring state. This all needs doc'ing.


The race is not to the swift

When running npm test, I get all checks with the following exception inserted (paths edited to be relative for brevity and clarity):
Error: Can't set headers after they are sent.
    at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:335:11)
    at ServerResponse.header (./node_modules/express/lib/response.js:700:10)
    at ServerResponse.send (./node_modules/express/lib/response.js:154:12)
    at errHandler (./test/express-promise-router.test.js:277:17)
    at handleReturn (./lib/express-promise-router.js:27:27)
    at ./lib/express-promise-router.js:50:13
    at Layer.handle_error (./node_modules/express/lib/router/layer.js:58:5)
    at next (./node_modules/express/lib/router/route.js:108:13)
    at ./lib/express-promise-router.js:44:17
    at tryCatcher (./node_modules/bluebird/js/main/util.js:24:31)
    at Promise._settlePromiseFromHandler (./node_modules/bluebird/js/main/promise.js:454:31)
    at Promise._settlePromiseAt (./node_modules/bluebird/js/main/promise.js:530:18)
    at Promise._settlePromises (./node_modules/bluebird/js/main/promise.js:646:14)
    at Async._drainQueue (./node_modules/bluebird/js/main/async.js:79:16)
    at Async._drainQueues ./node_modules/bluebird/js/main/async.js:89:10)
    at Immediate.Async.drainQueues [as _onImmediate] (./node_modules/bluebird/js/main/async.js:14:14)

It seems that the test “calls next if next is called even if the handler returns a promise” is executing the rejection in the promise returned by the first handler, which leads me to believe that the successful result of the test is incorrect.
I have the following versions installed:
$ npm ls --depth=0
<EMAIL_ADDRESS>/Users/jason/Code/express-promise-router
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>

The test result was successful -- but the problem is that next is being invoked twice. The first time is when it is directly invoked, and the second is when it is invoked when the returned promise is resolved. Technically, there's no reason why you can't call next twice. In this case, it resulted in an error is because both calls tried to use res.send.
Thanks for pointing this out.


feat: migrate BuildCodegenCLITaskTest and PrepareGlogTaskTest to AssertJ

Summary:
Issue: https://github.com/facebook/react-native/issues/45596
Changelog:
[ANDROID] [CHANGED] - Migrated BuildCodegenCLITaskTest, PrepareGlogTaskTest from junit.Assert to assertj.core.api.Assertions.
Test Plan:
Run ./gradlew -p packages/gradle-plugin test

Hey @cortinico. Done


Book tells me to install a package that doesnt exist

In the installation Linux section of the book. The book tells me to run different commands depending my distro, I run the Debian ones because I'm on KDE Neon (Ubuntu-based which is Debian-based).  The command I ran is:
sudo apt install libgtk-4-dev build-essential

But I got the error Unable to locate package libgtk-4-dev. That means the package doesnt exist. What is the correct package?

I suppose your distribution is too old and doesn't have the gtk4 package in the default repository.

Yes, latest KDE Neon is based on Ubuntu 20.04, which is ancient and doesn't have GTK4 yet.

Yes, latest KDE Neon is based on Ubuntu 20.04, which is ancient and doesn't have GTK4 yet.

oh... damn..


chef dsc_resource to set the dns address for Windows nodes

Hello,
I am new to Chef automation and am trying to set the DNS primary and secondary address to windows nodes using chef xNetworking dsc_resource and I have a show stopper with defining Interface alias.
Different nodes have different ethernet adapter names. How do I define the Interface alias now to run dsc configuration on a set of nodes. I did define address family and address in attributes file.
Here is my dsc_resource code:
dsc_resource 'config_dns' do
resource :xDnsServerAddress
module_name 'xNetworking'
property :AddressFamily, node['addressfamily']
property :InterfaceAlias, node['interfacealias']
property :Address, [node['primary'], node['secondary']]
end

@Pcchef Thanks for filing a GitHub Issue.
At Chef, we use GitHub Issues to track bugs and feature requests. Questions like "How do I .... with Chef?" are better answered by our awesome community on the Chef mailing lists, Chef Community Slack, or on StackOverflow. (Please pick only one place to ask your question, however, as it's considered impolite to post the same question to multiple forums.)
You can find information about joining and asking questions on our mailing lists here. On StackOverflow, please tag your question with the "chef" label so that it shows up in this list.
We will be closing your issue. Please get in touch with the community via the above mechanisms in order to find a solution to your problem.


add a github workflow to report branch coverage

Signed-off-by: Ramkumar Chinchani<EMAIL_ADDRESS>
What type of PR is this?

feature
Which issue does this PR fix:
What does this PR do / Why do we need it:
Reports branch coverage so that we can improve our unit tests
If an issue # is not available please add repro steps and logs showing the issue:
Testing done on this change:

Automation added to e2e:

Will this break upgrades or downgrades?
Does this PR introduce any user-facing change?:

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

https://go.dev/play/p/nLpnrY2cQjM


Update to Blender 2.9 and ID maps

It seems that the script is still used by many as a starting point for their own work and it is often adapted to their needs.
For this reason I updated it to Blender 2.9 and added ID maps as an example for segmentation ground truth.

Thanks! I'll test it on my machine in the coming days, then merge.
One question I have is: What are ID maps? Are they a well known concept that doesn't need explaining?

@panmari I hope so :D ID maps, segmentation masks... the terminology varies in the literature.
I found a video by Adam Kelly that explains the concept very well, especially in the context of blender.
https://www.youtube.com/watch?v=xeprI8hJAH8

@panmari Sorry for being so lazy. Please take the code and do whatever you like... :)

@panmari Sorry for being so lazy. Please take the code and do whatever you like... :)

Ok, I'll patch a few things after merging then.


Build cargo using --enable-nightly

--enable-nightly builds a cargo thats statically linked with libcurl, libcrypto, libssl, etc.
This should fix getting unknow symbols in modern linux distributions:
# Arch
$ cargo -V
cargo: /usr/lib/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by cargo)
cargo: /usr/lib/libcrypto.so.1.0.0: no version information available (required by cargo)
cargo: /usr/lib/libssl.so.1.0.0: no version information available (required by cargo)

Confirmed that the produced cargo nightly can build cargo in an Odroid XU running Arch.


Optimize GUI for small devices

I notices the GUI not working properly on smartphones. Most importantly I added the meta tag for the viewport. Tuned the ui by adding some tailwind classes. No changes in logic.
Here are some screenshots of the adjusted layout:
Login Screen:

Overview:

I hope these changes are to your liking.
Greetings from Germany,
Simiridium

@PudgyPug @magonjr please review my pr.

Hey Simon,
Thanks for creating this PR. After testing this I'll get it merged


Let's remove the "under construction" warning from the network charts

I think it is time to remove the "under construction" warning from the network charts
@antw how can I do that?
@jorisberkhout do you agree?

You can do this through the admin interface of ETModel.
I would suggest to wait until we have done the deploy testing, which I will start doing now. Do have any objections to removing the warning by next Tuesday the latest @DorinevanderVlies ?

Ok, I'll put it on my todo-list for Tuesday

Rob wants to use some of these charts for in a presentation. These charts are now tested, right? So he could use them?

I have removed all 'Under construction' banners. Closing.


chore(docs): Add email github task link

This project uses semver, please check the scope of this pr:

[x] #patch# - backwards-compatible bug fix
[ ] #minor# - adding functionality in a backwards-compatible manner
[ ] #major# - incompatible API change

Changes Unknown when pulling 17c71e3f3ef16cd0c1f7937c7e84e72921691a21 on chore/documentation-update into ** on master**.

Changes Unknown when pulling 17c71e3f3ef16cd0c1f7937c7e84e72921691a21 on chore/documentation-update into ** on master**.


reviews for smart contract

:x: Build AElf <IP_ADDRESS>59 failed (commit https://github.com/AElfProject/AElf/commit/0e827a5a40 by @)


Install udev rules

Installation is currently disabled
@wolfv - any ideas how to deal with that? If I remember correctly you had some thoughts on how to do that in conda-forge.

Hmm... the only way would be via post-link script right now. You can execute arbitrary commands with a post link script (and post-unlink script). This script could create a /etc/udev/rules.d/10-conda-libcaer.rules file

But don't you need root permissions for creating these files? How would that work?

Right, you'd need root permissions. It's probably possible to make the post link script ask the User if the installation is wanted.
Otherwise we could add a small helper script in $PREFIX/bin/install_udev.sh and explain users that they'll have to run that after installation

Or we make a conda-wide plugin where udev rules added in $PREFIX/udev/* are automatically installed & removed -- but that would take work in mamba or conda to achieve (conda is looking to add plugin support and we'd like to do the same in mamba)


Implement new dialog light options

This pull request implements new options to hide elements from the more-info dialogs of light entities.
New options

Config Option
Type
Default
Description

hide_dialog_light_actions
Boolean
false
Hides all the actions in the more-info dialogs of light entities.

hide_dialog_light_control_actions
Boolean
false
Hides the control actions in the more-info dialogs of light entities.

hide_dialog_light_color_actions
Boolean
false
Hides the favorite colors actions in the more-info dialogs of light entities.

hide_dialog_light_settings_actions
Boolean
false
Hides the settings actions in the more-info dialogs of light entities.

Url parameters

?hide_dialog_light_actions to hide all the actions in the more-info dialogs of light entities
?hide_dialog_light_control_actions to hide the control actions in the more-info dialogs of light entities
?hide_dialog_light_color_actions to hide the favorite colors actions in the more-info dialogs of light entities
?hide_dialog_light_settings_actions to hide the settings actions in the more-info dialogs of light entities

Screenshot

Options
Hides

hide_dialog_light_actions
21

hide_dialog_light_control_actions
22

hide_dialog_light_color_actions
23

hide_dialog_light_settings_actions
24

Closes: #218

Great work. Look forward to trying it. Thanks again.


OBI:0000658 'data representational model' has non-Aristotelian definition with embedded commentary

Data representational model is an information content entity of the relationships between data items. A data representational model is encoded in a data format specification such as for cytoscape or biopax.

I propose this quick fix:

An information content entity representing the relationships between data items

and a comment of

The Cytoscape application is commonly used to visualize data representational models about biological entities. It can read and write several serializations of data representational models, including BioPAX

This seems like a very straightforward change, so I went ahead and made a pull request for it. If the group would like any changes to your proposed definition/comment once we have a chance to discuss it on the OBI dev call, I'm happy to amend the PR as needed. Thanks for catching this one and proposing the fix.


change about ex13_17

modify the ex13_17 to adopt the change , rm the directory and add them into makefile

@pezy , I am sorry ! You have do change about ex13_17 ! So quick , I will revise my pull request then!


New Feature - Is there any support with Eureka Client for Service Discovery in Pivotal Cloud Foundry with Ocelot in near by feature ?

Expected Behavior / New Feature
Does Ocelot has Support with Eureka for service discovery in Pivotal Cloud Foundry in near future
Actual Behavior / Motivation for New Feautre
Right now for Service Discovery in Ocelot ,only Consul is there .When deployed in PCF we need to have the support for Eureka client.Right now that is happening with gateway
Steps to Reproduce the Problem

Specifications

Version:
Platform:
Subsystem:

@SrikanthNalam thanks for your interest in the project! :)
I have no plans to implement this at the moment I just started a new job and I'm prioritising certain features at the moment. Maybe in the future it is something I might look at.
However if you would like to implement this yourself you could submit a PR that makes it work.
You would need to add an implementation of IServiceDiscoveryProvider for Eureka, edit ServiceDiscoveryProviderFactory to return your new provider in the right circumstances. I would suggest just having FileServiceDiscoveryProvider.Type as "Eureka" or something and this will get passed into the factory. It shouldn't be too much work especially if there is already a library for this in .NET because you could just pull it in and implement your IServiceDiscoveryProvider.
Anyway hope that helps and I would welcome a PR for this.

Thanks Tom Pallister.We are working on this.Will let you know the update on this

@SrikanthNalam awesome! Good luck :)

Hi Tom, I have implemented Eureka Service Discovery in Ocelot and expecting your comments before merging the changes.
DependencyInjection/OcelotBuilder.cs
// Steeltoe Service Discovery Implementation             if (configurationRoot.GetSection("GlobalConfiguration:ServiceDiscoveryProvider").Key !=null &&                 configurationRoot.GetValue<string>("GlobalConfiguration:ServiceDiscoveryProvider:Type") != null &&                 configurationRoot.GetValue<string>("GlobalConfiguration:ServiceDiscoveryProvider:Type") == "Steeltoe" &&                 configurationRoot.GetSection("eureka").Key != null)             {                 _services.AddDiscoveryClient(configurationRoot);                 _services.TryAddSingleton<IHttpRequester, HttpDiscoveryClientHttpRequester>();             }             else             {                 _services.TryAddSingleton<IHttpRequester, HttpClientHttpRequester>();             }
Middleware/OcelotMiddlewareExtensions.cs
if (configuration != null && configuration.ServiceProviderConfiguration != null &&                  configuration.ServiceProviderConfiguration.Type == "Steeltoe")             {                 builder.UseDiscoveryClient();             }
And I have added Overriding methods for HttpDiscoveryClientRequester under Requester/ folder. The new methods will take care the HttpClient calls through DiscoveryHttpClientHandlers.
Requester/HttpDiscoveryClientHttpRequester.cs
`public class HttpDiscoveryClientHttpRequester : IHttpRequester
{
private readonly IHttpClientCache _cacheHandlers;
private readonly IOcelotLogger _logger;
private readonly IDelegatingHandlerHandlerHouse _house;
private readonly IDiscoveryClient _discoveryClient;
private DiscoveryHttpClientHandler _handler;
    public HttpDiscoveryClientHttpRequester(IOcelotLoggerFactory loggerFactory,
        IHttpClientCache cacheHandlers,
        IDelegatingHandlerHandlerHouse house, IDiscoveryClient discoveryClient)
    {
        _logger = loggerFactory.CreateLogger<HttpClientHttpRequester>();
        _cacheHandlers = cacheHandlers;
        _house = house;
        _discoveryClient = discoveryClient;
    }

    public async Task<Response<HttpResponseMessage>> GetResponseAsync(DownstreamContext request)
    {
        _handler = new DiscoveryHttpClientHandler(_discoveryClient);
        var discoveryClientBuilder = new DiscoveryHttpClientBuilder().Create(_handler, request.DownstreamReRoute);
        var httpDiscoveryClient = discoveryClientBuilder.Client;

        try
        {
            var response = await httpDiscoveryClient.SendAsync(request.DownstreamRequest);
            return new OkResponse<HttpResponseMessage>(response);
        }
        catch (TimeoutRejectedException exception)
        {
            return
                new ErrorResponse<HttpResponseMessage>(new RequestTimedOutError(exception));
        }
        catch (BrokenCircuitException exception)
        {
            return
                new ErrorResponse<HttpResponseMessage>(new RequestTimedOutError(exception));
        }
        catch (Exception exception)
        {
            return new ErrorResponse<HttpResponseMessage>(new UnableToCompleteRequestError(exception));
        }
        finally
        {
            //_cacheHandlers.Set(cacheKey, httpClient, TimeSpan.FromHours(24));
        }
    }
}`

Requester/DiscoveryHttpClientBuilder.cs
 public class DiscoveryHttpClientBuilder : IDiscoveryHttpClientBuilder     {         public IHttpClient Create(DiscoveryHttpClientHandler handler, DownstreamReRoute request)         {             var client = new HttpClient(handler);             return new HttpClientWrapper(client);         }     }
Update in configuration.json
"GlobalConfiguration": {     "ServiceDiscoveryProvider": {       "Type": "Steeltoe"     }   }
Please let me know your feedback about this approach.
Thanks,
Siva

@SivakumarShan good stuff :)
I've had a look and think that you can implement this without having to change Ocelot at all.
If you are using the latest version of Ocelot 5.5.1 then you can do the following....
 public class DiscoveryHttpClientBuilder
    {
        public IHttpClient Create(DiscoveryHttpClientHandler handler)
        {
            var client = new HttpClient(handler);
            return new HttpClientWrapper(client);
        }
    }

    public class EurekaDelegatingHandler : DelegatingHandler
    {
        private readonly IDiscoveryClient _discoveryClient;
        private DiscoveryHttpClientHandler _handler;

        public EurekaDelegatingHandler(IDiscoveryClient discoveryClient)
        {
            _discoveryClient = discoveryClient;
        }

        protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            _handler = new DiscoveryHttpClientHandler(_discoveryClient);
            var discoveryClientBuilder = new DiscoveryHttpClientBuilder().Create(_handler);
            var httpDiscoveryClient = discoveryClientBuilder.Client;
            var response = await httpDiscoveryClient.SendAsync(request, cancellationToken);
            return response;
        }
    }

This creates a delegating handler that will use the IDiscoveryClient stuff. Then to tell Ocelot to use you can do the following in your configure either in startup or program.cs
 .Configure(app =>
      {
            app.UseDiscoveryClient().UseOcelot().Wait();
      })

You also need to configure your services..
.ConfigureServices(s =>
        {
             s.AddDiscoveryClient(c)
                 .AddOcelot()
                 .AddSingletonDelegatingHandler<EurekaDelegatingHandler>(true);
        })

If you look at this documentation hopefully it will all make sense.

Hi Tom,
Thanks for your guidance on using the above approach. I thought we can integrate the Eureka Service Discovery in Ocelot, so anyone can use it in future based upon their need.
I followed the above approach and have added UseDiscoveryClient() and AddDiscoveryClient() in my Startup class. But I'm getting an exception that "The request message was already sent. Cannot send the same request message multiple times" as we already injected _services.TryAddSingleton<IHttpRequester, HttpClientHttpRequester>(); in OcelotBuilder.cs which needs to be avoided when we use EurekaDelegatingHandler which will make a Http Call through DiscoveryHttpClientHandler.
Could you please guide me how can I override the HttpClientHttpRequester with EurekaDelegatingHandler when I use Eureka?
Thanks,
Siva

@SivakumarShan If you submit a pull request between your fork and Ocelot's develop branch I will be able to work this out a bit easier.
My best guess is something to do with the order delegating handlers have been registered.

@TomPallister I'm unable to push the code changes to the Developer branch. I'm getting the below error.

cannot spawn askpass: No such file or directory
could not read Username for 'https://github.com': terminal prompts disabled
Pushing to https://github.com/ThreeMammals/Ocelot.git

Should I have the access to push my changes to repo?

@SivakumarShan you need to follow this process

https://help.github.com/articles/fork-a-repo/
https://help.github.com/articles/creating-a-pull-request-from-a-fork/

Unfortunately you cannot push code straight to Ocelot!

Thanks @TomPallister I have created a PR with my approach. Please have a look at it.

@SivakumarShan cool, I'm taking a look now.
I have started with the following code https://github.com/ThreeMammals/Ocelot/commit/8532a5b5201363d58c169536291ac16bf2e70ae6 which is just going to try and use Steeltoe.
However I get an error when Ocelot starts because I don't have whatever service running that Eureka / Steeltoe / Pivotal needs to work. Do you know where I can get this for local development?
Also is there anywhere good I can quickly learn about how all this works? Because there might be a much better way to do this and hook into Ocelot's normal service discovery pipeline.

Hi @TomPallister you can create a local Eureka Server by pulling the docker image from https://hub.docker.com/r/steeltoeoss/servers/
Steeltoe Service Discovery -
https://steeltoe.io/docs/steeltoe-discovery/

@SivakumarShan cool thanks, ill give this a go asap!

@SivakumarShan I’ve had a good look at this and we won’t be able to use the delegatinghandler approach because of how ocelot and eureka work. I will work on this issue now as it’s quite complicated with what needs to happen.

@SivakumarShan I have made the changes for this to work, you can see them here. I will probably merge & release them tomorrow if I get a chance. Let me know if you have any suggestions.

@SivakumarShan @SrikanthNalam I have just released this feature in version 5.5.4 please check it out and let me know if it works. Docs are here http://ocelot.readthedocs.io/en/latest/features/servicediscovery.html

@SivakumarShan Ocelot doesn't need to use the DiscoveryHttpClientHandler so I won't be using it. We use the IDiscoveryClient directly.
Ocelot doesn't need to register with Eureka in order to get services from it so it doesn't need to be set to true.

@TomPallister I meant, there are two properties in eureka service Registry/Discovery. By default both the properties are true. So in-order to ensure Ocelot is discovering the service, we need to set the "shouldRegisterWithEureka": false and automatically shouldFetchRegistry will be set to true.
And also, I'm trying to understand the approach which you implemented through EurekaServiceDiscoveryProvider and I'm getting some exceptions. I'll let you know my updates, after I complete the testing.

@SivakumarShan shouldRegisterWithEureka is already set to false in the documentation. I have linked to the Eureka documentation for that though. It's not really Ocelot concern. Is that OK?
OK let me know how your testing goes....hopefully it will work.
All I have done is use the IDiscoveryClient directly instead of the HttpHandler they provide.

@SivakumarShan sorry I have checked the documentation now you are correct! I'm not sure why it is wrong :( will fix!

@TomPallister I found out the root cause of the issue. DownStreamRequest.Host is replaced with the Eureka Service Host URL and Ocelot is trying to make a HttpClient call with Eureka host which is wrong. So we are getting the timeout exception.
As per my knowledge, Eureka Server Discovery will be resolved only by creating a HttpClient of DiscoveryHttpClientHandler as it's documented here

@SivakumarShan try DownstreamScheme as http and you don't need the DownstreamHostAndPorts when using service discovery. Can I see the configuration that your service uses to register with Eureka?
That might be causing a problem. I will have a proper look later!

@TomPallister  please find the below Eureka Configuration of the Service.
{   "Logging": {     "IncludeScopes": false,     "LogLevel": {       "Default": "Warning"     }   },   "spring": {     "application": {       "name": "ncore-rat"     },     "cloud": {       "config": {         "uri": "http://localhost:8888",         "validate_certificates": false       }     }   },   "eureka": {     "client": {       "serviceUrl": "http://localhost:8761/eureka/",       "shouldFetchRegistry": false,       "validateCertificates": false     },     "instance": {       "port": 5000     }   } }
Sure. Let me try it out.

@TomPallister I tried it with the above approaches. But no luck.

@SivakumarShan ahh no :( this is so confusing. Please bear with me I'm doing my best!
I don't understand why it doesn't work for you! I noticed you want to call your downstream service over https, is your certificate valid? Do you accept connections over HTTP? Or just HTTPS? I'm thinking you are registering with port 5000 which isnt normally https but in the Ocelot config you are stating HTTPS!
If you call the service without Ocelot e.g. curl over http and https does it work with both?

@TomPallister The port address of 5000 is for local service registry. Even I tried by running Service and Ocelot in local. But getting the same issue. Actually my application has been hosted in Private PCF. So it accepts Http request too. Once it's deployed to PCF, I'll be binding the Eureka Service with my application which will override the 5000 port.

@SivakumarShan I have looked at this some more and your settings didn't work for me either.
I noticed in your service appsettings.json that you have the cloud:config:uri as http://localhost:8888 so I assume that is the address you expect the service to run on but in your instance:port setting you have 5000. If your service is running on 8888 and you set 5000 I don't think it will work. Also the other problem I had was if I have a service running on http://localhost:8888 or http://localhost:5000 when the steeltoe client registers the service it does it using the machine name not localhost. This meant I have registered http://XXXXMACHINE:5000 not http://localhost:5000 in Eureka. When Ocelot made the call to my service on http://XXXXMACHINE:5000 it didn't work because my service was listening for requests on http://localhost:5000.
Anyway I hope this is the same problem you are having.
I have created a sample project for you to run and check that it works on your local environment. Then perhaps use that as the basis going forward. The project is here let me know if you get it working!

@TomPallister Thanks a lot for sharing the sample project which works fantastically without any issues. I further figured out by changing the ocelot configuration with "DownstreamScheme": "http" instead of https, it worked without any issue. Even though if I mention the downstream URI, it's not affecting the flow.  So we are good now.
One quick question, if my downstream service accepts, only HTTPS, how can we handle that situation. Will ocelot take care of that scenario too?

@SivakumarShan if your downstream service only accepts HTTPS then you need to set DownstreamScheme as https. The important thing to remember is that you need a valid certificate on the downstream service that is trusted by the host Ocelot is running on. Otherwise the connection between Ocelot and the downstream service will fail.
It is also worth noting by the way to use a load balancer with Ocelot service discovery. Check out the docs here. I would suggest using the RoundRobin load balancer at first and then LeastConnection if that works OK.
I'm happy that it is working :) I will close this one now! Let me know if you need anymore assistance!

@TomPallister Thanks a lot for the help😄 Yeah understood now. I'll use the Loadbalancer with Ocelto Service Discovery. Thanks again.


Prune list of helpers

As we start thinking about a 1.0 release, I want to drop any helpers that haven't worked out or are out of scope. Let's use this issue to keep track of which ones are on the chopping block:

[x] withAttachedProps — will be replaced by withHandlers (I'll have PR ready for this soon added in 0.17)
[x] mapPropsOnChange — not convinced this is actually useful. Can be replaced by normal mapProps + function memoization, via lodash or otherwise. Keeping this and renaming to withPropsOnChange() https://github.com/acdlite/recompose/pull/134
[x] doOnReceiveProps
[x] lifecycle

Update: there's some disagreement over whether the lifecycle-based helpers belong in the library or not. My attitude is that they're currently half-baked, so let's remove them for now and we can add them in a minor release once we've figured out a better story for them — or not, if we decide they're outside the scope of the library.

Without lifecycle it will be impossible to cancel async tasks.

BTF I'm not using lifecycle directly, and use my cancelAsync HOC based on lifecycle, which can be easily be rewritten as simple component.

doOnReceiveProps is pretty useful, especially as a building block for other things, it's basically createSink but you can also render something

My thinking is that both lifecycle and doOnReceiveProps are too leaky. @nfcampos Can you give me an example of how you've used doOnReceiveProps?

+1 for withAttachedProps & mapPropsOnChange
no opinion - doOnReceiveProps
lifecycle - should we use classes for that?

@RafalFilipek Yes, or something like rx-recompose's observeProps

@acdlite actually you're right, it's not that useful, at least for me, I thought I remembered two times I had used it but going back to find them I now realise that

in one it was just a pretty stupid use so nevermind ;)
in the other I thought about using it but ended up not using it because I also needed access to the old props inside the callback (to compare) (this 2nd use is this https://gist.github.com/nfcampos/512076429479c7c9b7243be0b33ec924 a HOC like withProps but for props that are computed asynchronously, if you think something like that belongs in recompose I'd be more than happy to contribute)

@acdlite wrote mapPropsOnChange — not convinced this is actually useful. Can be replaced by normal mapProps + function memoization, via lodash or otherwise.
I think It can't be replaced normal.
Because:

default lodash memoize just uses first argument as a key for memoize cache, creating universal resolver to create cache key for multiple arguments is not a big problem but it will be not fast operation (find on a list of used arguments). As I use mapPropsOnChange on thousands of created - removed element, this find operation will be a performance problem.

to use memoize like in reselect https://github.com/reactjs/reselect/blob/master/src/index.js#L5-L20 which memoizes only last call, we will need additional helper to create memoized function for every element created from current Component. Like lifecycle.

even with good memoize we need to define function body outside of mapProps, but for me it is the biggest advantage of recompose (and std map filter reduce) that I can place anonymous function in that place where it used.

IMHO mapPropsOnChange is very useful HOC for components creation, and I use it very often (but not current version, I use this https://github.com/acdlite/recompose/pull/119)

Regarding withAttachedProps, I ended up using that a bit for attaching immutable props to components other than just event handlers.  So I guess like a one-time mapProps function.  As a silly example:
// This is a higher-order component that expects a `fullName` prop
const someHoc = ComposedComponent => props => {
    // Do something with props.fullName
};

// Person.js
const Person = props => <div>{props.fullName}</div>;

export default compose(
   withAttachedProps(getProps => {
      const { firstName, lastName } = getProps();

      return { fullName: `${firstName} ${lastName}` };
   }),
   someHoc
)(Person)

// Later...
<Person firstName='Tom' lastName='Cruise' />

So I needed to compute props in order to provide new props to a child component, but I knew that I only needed to compute those props once.
Would there be a better way to do this with one of the other helpers?  Or perhaps is this just a bad idea all around?

@npbee I believe that's what the original idea behind mapPropsOnChange was. This is a real use case; need to come up with the best API for it.

@nfcampos I've thought about adding something like your withPromisedProps but it really only works on the initial render. In my app, I've been using observeProps + flatMap for this use case, because observables can handle multiple values over time.

@acdlite I think i'll end up doing something like that

I liked doOnReceiveProps was pretty helpful. only one thing that could make it better is to pass oldProps as second argument.
it is greatly simplifies some code
from
componentWillMount(){
this.init(this.props, {});
}
componentWillReceiveProps(nextProps) {
this.init(nextProps, this.props);
}

to

compose(doOnReceiveProps(init))
basically removing need to create a class entirely

Sorry to discover about dropping doOnReceiveProps – I used it in a few places when I needed some components to fetch missing pieces of data both on mount and update. Using this saves LOCs.

I'm not opposed to bringing back doOnReceiveProps() if someone details a use case, with specific examples, and suggests a better API. A PR with docs would be the best way to do this.

One of most common use case for me for doOnReceiveProps is to have internal state with initial value equal or depending on some external prop, and for performance and other reasons I need to change this initial value every time external prop has changed.
As a simple example, I save on the server every component value change.
Let's take a simple slider component, it has value and onChange props, and on every drag value is changed.
This will generate a lot of onChange events, so the best is to save value of this component on onMouseUp event. (onBlur for inputs, etc)
So for a lot of such controls, I use HOCs with internal value state, which is updated as usual on onChange event and if external value has changed. (External value can be changed not only in onMouseUp event but as a result of some external operations)
The other use cases are similar, except where I need to call some external action.
So for most of my use-cases doOnReceiveProps is like withState where initialState callback is called not only on initial phase but also at every componentWillReceiveProps call with (props, nextProps, state) signature.
I played with this idea, but got that it's too complicated to read such code.

PS:  Looks like a lot of my current situations could be solved with rx-recompose, so I'll try to start using it.

@istarkov rx-recompose can help with what you have. we are not using rx yet so standard helper was great for us

@acdlite please take a look at #159 . We are heavily using doOnReceiveProps to fetch data, with is missing to show component. Also very useful to show some loading spinner while needed data is loading.


Disable two flaky pexpect-backed tests on Darwin

These tests are sporadically timing out on our bots, e.g here:
https://ci.swift.org/job/swift-PR-Linux/6841
git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@339914 91177308-0d34-0410-b5e6-96231b3b80d8
(cherry picked from commit 3009f7cbc69f79d2d1d849432235a5800230fef0)

@swift-ci test and merge


target 3+ validator scenario per master merge that runs for 30 minutes to see reorgs

Taken over by reorg.test.ts


Add link to Kristina S's slides on Taxonomies

Purpose / why
Augment documentation on taxonomies/metadata
What changes were made?
Add link to slides
Verification
Does the link work?
Interested Parties

Replace this text - Name some folks who may be interested, if documentation related mention @Islandora/documentation, or, if unsure, @Islandora/8-x-committers

Checklist

Pull-request reviewer should ensure the following

[ ] Does this PR link to related issues?
[ ] Does the proposed documentation align with the Islandora Documentation Style Guide?
[ ] Are the changes accurate, useful, free of typos, etc?
[ ] Does this PR update the last updated on date on the documentation page?

Person merging should ensure the following

[ ] Does mkdocs still build successfully? (This is indicated by TravisCI passing. To test locally, and see warnings, see How To Build Documentation.)
[ ] If pages are renamed or removed, have all internal links to those pages been fixed?
[ ] If pages are added, have they been linked to or placed in the menu?
[ ] Did the PR receive at least one approval from a committer, and all issues raised have been addressed?

@seth-shaw-unlv thanks! done.


Define terminology for our hub service and shared responsibility model

Context
In some recent iterations we have explored new terminology to describe our service and the staffing model that we use to run it. We want to strike a balance between two kinds of service delivery:

Managed Hub Service: 2i2c provides a fully-managed service, so that you don't have to think or worry about it
Collaborative Hub Service: 2i2c collaborates with you to run the service together, so that you have agency in leading and executing the service

The first approach is what we largely began with, but this seemed to create an impression of "software as a service", and downplayed the transparent and collaborative nature of how 2i2c wants to run its services. The second approach leans more heavily into the non-profit and mission-aligned nature of 2i2c, but "collaboration" is a vague and over-loaded term.
We are ultimately aiming for a grey area: while there are some aspects of this that are a traditional "managed service" (the Kubernetes and base JupyterHub infrastructure). There are other aspects of the service that are not "fully managed" and more collaborative (like guiding communities in using the infrastructure). We need to find a way to strike a balance between the two.
For two examples of our current service collaboration model, see:

Our service delivery team / roles page
Our shared responsibility model page

Proposal
We should define a consistent set of terminology to use when describing this model that strikes the right balance between these two things. We can then apply this terminology throughout our documentation and service descriptions, and use this to guide our shared responsibility model.
Updates and actions
No response

Thanks a lot for opening this up, @choldgraf!
I agree the grey area is what we're going for, and it is important to recognize that. However, I think 'collaborative' is too grey, and also to me connotes the RTC work that happens in JupyterLab. It also feels like the adjective is refering to the kind of hub that is produced rather than the process by which it is managed.
Perhaps 'Collaboratively managed hub'? That points the adjective to the fact that the management is what is collaborative, not the hub itself.
Separately, I've been trying to draft a 'Right to participate' document (similar to our right to replicate) that will help lay out what kinda collaboration we mean. Vague outline (without a lot of answers) at https://hackmd.io/zH1PE6maTkmbfKyU4AQe-Q.

James Halgren of Alabama Water Institute referred to 2i2c as a provider of "infrastructure as code" when we discussed the shared responsibility model. I agree with Yuvi that "collaborative hub service" has a namespace collision with RTC.
I wondered how different stakeholders will respond to this terminology. Champions of 2i2c's service will likely understand the shared responsibility model while people in procurement may not. Emphasizing "collaboration" in the product name may lead procurement people to ask why are we paying for a service from them when the work is performed by the champion? Does the "managed hub service" language leave procurement satisfied while maintaining the collaborative engagement with the champions?

Rather than thinking of "Managed Hub Service" vs "Collaborative Hub Service" as an either/or offering with some overlap, is it cleaner to talk about the "managed hub service" being a proper subset of the overall value that 2i2c is providing? I agree that 2i2c mission orientation means that being "only" a software-as-a-service provider is not really describing the full value that 2i2c brings to its partnerships.
Could we pitch it as a partnership with 2i2c bring a series of "features", some that are core and some that are optional?  For example, I think there is always a underlying managed hub for which 2i2c is providing the engineering so that is core feature. But our level of end-user (L1) support could be extended if that was part of the overall scope of the partnership.  Some communities may want additional support and training (and for 2i2c to handle that) and other communities may want to develop their own resources and procedures for providing that end-user support.
And I agree with Yuvi and Jim that the word "colloborative" will likely cause confusion with "real-time colloboration" to most communities and users.  This is already a key feature in Google Colab and is an upcoming feature for JupyterLab.  Are their any synonyms that we could claim instead for what we are envision when 2i2c says "colloborative":

cooperative(ly)
joint(ly)
allied
coordinated
shared
symbiotic
synergic, synergistic, synergetic
unified
united


Very strange effect after last update

The ePub reader is continuously looping from start list Screen to open book and first page.
And then resetting in an eternal loop.
The strange part is that it's like if the button will be stuck on pressed state, but it's certainly not.
Serial output:
I (679045) PUBLIST: Rendering item 1
I (679255) EPUB: Reading item OEBPS/Images/cover.jpg
I (679685) JPG: JPEG Decoded - size 600,900, scale = 0.640000, 0.644444, 2
I (680495) PUBLIST: Rendering item 2
I (680685) EPUB: Reading item OEBPS/@public@vhost@g@gutenberg@html@files@43@43-h<EMAIL_ADDRESS>I (681035) JPG: JPEG Decoded - size 500,862, scale = 0.768000, 0.672854, 2
I (683755) main: Selected epub /fs/el_aleph.epub
E (684635) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (684635) task_wdt:  - IDLE (CPU 1)
E (684635) task_wdt: Tasks currently running:
E (684635) task_wdt: CPU 0: epd_fetch
E (684635) task_wdt: CPU 1: IDLE
E (684635) task_wdt: Print CPU 0 (current core) backtrace

Backtrace:0x40116FCB:0x3FFB0840 0x40084209:0x3FFB0860 0x4000BFED:0x3FFBAC30 0x40090CD5:0x3FFBAC40 0x4008E909:0x3FFBAC60 0x40082D5D:0x3FFBACA0 0x40090A21:0x3FFBB0D0
  #0  0x40116FCB:0x3FFB0840 in task_wdt_isr at /home/martin/.platformio/packages/framework-espidf/components/esp_common/src/task_wdt.c:189
  #1  0x40084209:0x3FFB0860 in _xt_lowint1 at /home/martin/.platformio/packages/framework-espidf/components/freertos/port/xtensa/xtensa_vectors.S:1105
  #2  0x4000BFED:0x3FFBAC30 in ?? ??:0
  #3  0x40090CD5:0x3FFBAC40 in vPortExitCritical at /home/martin/.platformio/packages/framework-espidf/components/freertos/port/xtensa/port.c:472
  #4  0x4008E909:0x3FFBAC60 in xQueueGenericSend at /home/martin/.platformio/packages/framework-espidf/components/freertos/queue.c:954
  #5  0x40082D5D:0x3FFBACA0 in provide_out at lib/epdiy/epdiy/src/epd_driver/lut.c:427

Fixed after @atomic14 comments and doing a: git submodule update
And building it again


Api package setup

changed the server to run from a single routes.py to a "package" setup. This makes the app more extensible by allowing groups of routes, models, etc (i.e. users, blog posts, etc).
This PR also incorporates the logging module.
Now you can start the server (after you've run the setup code to configure the virtual environment) by running python run.py. The file calls the create_app() function from the /api/__init__.py. Comments are written throughout the files.

Also note, when up and running, to test an endpoint try http://localhost:5999/api/main/lifecheck/

Looks good to me! 🚢
Was able to get the /api/ endpoint working


Feature/versions

bumped kotlin to 1.3.50
coroutines 1.3.0 has just come out today so bumped that too
and bumped junit platform to latest

Build is green, see no harm in merging.

Looks like there hasn't been a release since this (it didn't get into 3.4.2?)
I'm looking into slowly migrating to kotlintest but it would be nice to not be getting a conflict in my app which is already on junit platform 1.5.2.

@kerooker lets do a 3.4.3


bundler exec rake spec failes with undefined method `shared_context_metadata_behavior='

I had pulled the latest yard source from github. Ran bundler install and then tried to run bundler exec rake spec, but I'm getting errors in return.
Steps to reproduce
This is the minimal reproduction for the issue. I've done my best to remove
all extraneous code and unique environment state on my machine before providing
these steps:

Clone repo
Run bundler install
Run bundler exec rake spec

Actual Output
C:\Users\tthomas2\SourceTree\yard (master)
λ bundle exec rake spec
C:/Ruby23/bin/ruby.exe -I'C:/Ruby23/lib/ruby/gems/2.3.0/gems/rspec-core-3.4.4/lib';'C:/Ruby23/lib/ruby/gems/2.3.0/gems/rspec-support-3.4.1/lib' 'C:/Ruby23/lib/ruby/gems/2.3.0/gems/rspec-core-3.4.4/exe/rspec' --pattern 'spec/**{,/*/**}/*_spec.rb'
C:/Users/tthomas2/SourceTree/yard/spec/spec_helper.rb:159:in `block in <top (required)>': undefined method `shared_context_metadata_behavior=' for #<RSpec::Core::Configuration:0x310fab8> (NoMethodError)
        from C:/Ruby23/lib/ruby/gems/2.3.0/gems/rspec-core-3.4.4/lib/rspec/core.rb:97:in `configure'
        from C:/Users/tthomas2/SourceTree/yard/spec/spec_helper.rb:119:in `<top (required)>'
        from C:/Ruby23/lib/ruby/gems/2.3.0/gems/rspec-core-3.4.4/lib/rspec/core/configuration.rb:1295:in `require'
        from C:/Ruby23/lib/ruby/gems/2.3.0/gems/rspec-core-3.4.4/lib/rspec/core/configuration.rb:1295:in `block in requires='
        from C:/Ruby23/lib/ruby/gems/2.3.0/gems/rspec-core-3.4.4/lib/rspec/core/configuration.rb:1295:in `each'
        from C:/Ruby23/lib/ruby/gems/2.3.0/gems/rspec-core-3.4.4/lib/rspec/core/configuration.rb:1295:in `requires='
        from C:/Ruby23/lib/ruby/gems/2.3.0/gems/rspec-core-3.4.4/lib/rspec/core/configuration_options.rb:109:in `block in process_options_into'
        from C:/Ruby23/lib/ruby/gems/2.3.0/gems/rspec-core-3.4.4/lib/rspec/core/configuration_options.rb:108:in `each'
        from C:/Ruby23/lib/ruby/gems/2.3.0/gems/rspec-core-3.4.4/lib/rspec/core/configuration_options.rb:108:in `process_options_into'
        from C:/Ruby23/lib/ruby/gems/2.3.0/gems/rspec-core-3.4.4/lib/rspec/core/configuration_options.rb:21:in `configure'
        from C:/Ruby23/lib/ruby/gems/2.3.0/gems/rspec-core-3.4.4/lib/rspec/core/runner.rb:105:in `setup'
        from C:/Ruby23/lib/ruby/gems/2.3.0/gems/rspec-core-3.4.4/lib/rspec/core/runner.rb:92:in `run'
        from C:/Ruby23/lib/ruby/gems/2.3.0/gems/rspec-core-3.4.4/lib/rspec/core/runner.rb:78:in `run'
        from C:/Ruby23/lib/ruby/gems/2.3.0/gems/rspec-core-3.4.4/lib/rspec/core/runner.rb:45:in `invoke'
        from C:/Ruby23/lib/ruby/gems/2.3.0/gems/rspec-core-3.4.4/exe/rspec:4:in `<main>'
C:/Ruby23/bin/ruby.exe -I'C:/Ruby23/lib/ruby/gems/2.3.0/gems/rspec-core-3.4.4/lib';'C:/Ruby23/lib/ruby/gems/2.3.0/gems/rspec-support-3.4.1/lib' 'C:/Ruby23/lib/ruby/gems/2.3.0/gems/rspec-core-3.4.4/exe/rspec' --pattern 'spec/**{,/*/**}/*_spec.rb' failed

Expected Output
Expected the RSpec tests to run successfully.
Environment details:

OS: Windows 10
Ruby version (ruby -v): ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]
YARD version (yard -v): [Enter output of yard -v]
Relevant software dependency/versions:

Bundler version 1.13.7

I have read the Contributing Guide.

So it turns out after I had ran bundle install, and then I checked bundle exec rspec -v it returned 3.4.4.
Now looking at the source of RSpec it turns out that Configuration.shared_context_metadata_behavior was added first in 3.5. So spechelper.rb failed at line 159.
After going into Gemfile and changing the rspec line to: gem 'rspec', '~> 3.5' and then ran bundle install again then bundle exec rake spec finally worked.


Electron-Angular (electron-packager) run time error "Something went wrong installing "sharp" module"

Did you see the documentation relating to installation?
Yes
Have you ensured the architecture and platform of Node.js used for npm install is the same as the architecture and platform of Node.js used at runtime?
I use electron-rebuild for this.
https://www.npmjs.com/package/electron-rebuild
Are you using the latest version? Is the version currently in use as reported by npm ls sharp the same as the latest version as reported by npm view sharp dist-tags.latest?
npm ls sharp =><EMAIL_ADDRESS>npm view sharp dist-tags.latest => 0.28.3
electron:  12.0.1,
electron-packager:  15.2.0,
electron-rebuild:  2.3.5
What is the output of running npx envinfo --binaries --system?
System:
OS: Windows 10 10.0.19042
CPU: (4) x64 Intel(R) Core(TM) i5-4288U CPU @ 2.60GHz
Memory: 2.22 GB / 7.93 GB
Binaries:
Node: 14.17.0 - C:\Program Files\nodejs\node.EXE
npm: 6.14.13 - C:\Program Files\nodejs\npm.CMD
STEPS
npm i sharp => success
.\node_modules.bin\electron-rebuild.cmd => success (rebuild sharp module)
npm run build-win => success (via electron-packager)
run app =>

PROJECT STRUCTURE

DEV MODE
ng build --base-href ./ && electron .  => app runs as expected.

You probably don't need to use electron-rebuild as the interface between sharp and Electron uses Node-API (N-API) rather than the older Node.js/V8 APIs.
If you're still having a problem, please can you provide a complete, standalone, minimal repo that allows someone else to reproduce it.


Update members

Pre-submission checklist:
Please check each of these after submitting your pull request:

[x] Are you only including a repo_url if your project is 100% open source? If so, you need to pick the single best GitHub repository for your project, not a GitHub organization.
[x] Is your project closed source or, if it is open source, does your project have at least 300 GitHub stars?
[x] Have you picked the single best (existing) category for your project?
[x] Does it follow the other guidelines from the new entries section?
[x] Have you included a URL for your SVG or added it to hosted_logos and referenced it there?
[x] Does your logo clearly state the name of the project/product and follow the other logo guidelines?
[x] Does your project/product name match the text on the logo?
[x] Have you verified that the Crunchbase data for your organization is correct (including headquarters and LinkedIn)?
[ ] ~15 minutes after opening the pull request, the CNCF-Bot will post the URL for your staging server. Have you confirmed that it looks good to you and then added a comment to the PR saying "LGTM"?

@dankohn any idea why this is failing?

Build failed because of:
No cached entry, and Tecton (member) has issues with twitter: https://twitter.com/TectonAI/, 401 - {"request":"/1.1/statuses/user_timeline","error":"Not authorized."}

LGTM I think!


Dart analyzer not analyzing correct after If(variable case class)

Dart version and tooling diagnostic info (dart info)

Whether you are using Windows, macOS, or Linux - macOS

Whether you are using Chrome, Safari, Firefox, Edge - doesn't matter

Hello Dart team!
I have a problem, I searched the probably existing issues, but didn't find anything relating to this issue.
So, consider example, we have a sealed class with child classes like in screenshot below:

And if we will write code like this:

Dart analyzer will warn us that testor is A, not B after checking pattern.

It should be case B() not case B then it will work as you want it.


Add support for haml page content

Please let me know if you support the premise of this change, and if you do I'll add any tests you think are worth adding.
thanks,
mick

Tests are always needed. I'm going to hold this one for a bit. My issue is how will this work when user messes up indentation and stuff?

Closing this as it's quite stale. With 2.0 it's really easy to add support for tags that handle HAML content. It's going to be trivial to add {{cms:haml content}} tag. Don't want to add as a default though. I'll add WIKI entry on how to add custom tags.


WIP lib: Better extensible attrsets

Motivation for this change
This is a WIP implementation of something like @edolstra's {{...}} recursive attrsets (from older https://gist.github.com/edolstra/29ce9d8ea399b703a7023073b0dbc00d), but with the self-super pattern. I'm all for the more ambitious goals (sharing abstractions for nixos/nixpkgs, no callPackage, prioritizes or something finer-grained over super sledge-hammer, etc), but fear without incremental steps like this, they won't happen.

Like it or not, self super is today's semantics for Nixpkgs
Doesn't try to fight callPackage, works very well with self.callPackage in the manner of Haskell package sets.
Recursion on merge solves the problem of deep overrides in overlays / recursive package sets

In particular, having both the inner and outer fixed points solves the problems with https://github.com/NixOS/nixpkgs/pull/44196 and my injectOverride alternative:

"Copying" (rebinding) an inner extensible attribute set just works, future overrides of the original won't affect the copy
overriding inside works per recursive merge
no overrideScope needed as one can just use makeScope to bind a local callPackage which will be updated automatically by extensible attrset merge.

The last commit is an example rushed example of how it simplifies llvmPackages_5 and darwin inner attribute set overriding in the Darwin bootstrapping. Further simplification would come from the unrelated change of having just llvmPackages_*.{tools,libraries}, rather than that + the legacy smushing of everything inside those alongside.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

CC @ElvishJerricco

No, this is a wrong direction for Nix. I don't want to have to explain to users what a "monoidal extension" is. The Nix language (as a DSL) should provide the proper concepts, they should not be provided in a library. Also, I suspect that this will make Nixpkgs evaluation even slower and memory-hungry.

@edolstra don't miss the forest for the trees :)

All the monoid stuff is just an implemention detail. It can be inlined away.

If we make zipAttrsWith a built-in there should be little performance impact. (Typically the overlay atteset is vastly smaller, and the overriding vs new attrs vastly smaller than that.)

I agree with @Ericson2314 about trying to do things incrementally; we're not going to be able to convert all of nixpkgs to the new system at once whenever we do get the language level feature. But @Ericson2314, I would recommend finding more friendly names for this stuff. IMO this has little to do with the term "monoid", because it's not actually abstract over the monoid in use. It'd be like calling || "monoidal choice".

@Ericson2314 That's what we've been doing for the last few years: we have stuff like the module system as a library feature. Now it's time to do it properly as a language feature.

@ElvishJerricco no it actually is abstract over all monoids in this implementation, just as we talked about long ago. The user doesn't need to worry about arbitrary monoids, but by the same token it is bad and a sign of the WIP-ness of this PR that they currently use any of the monad-polymorphic stuff.
@edolstra Yes, NixOS is ready, but Nixpkgs-the-package-set isn't. The most widely used things in nixpkgs like stdenv and cc-wrapepr are known-bad, and the langauge-specific/nested package stuff is not at all standardized. If your proposal only talked about NixOS, it would be one thing, but as it aims for the unified abstraction for packages and configurations, we have no choice but to first whip Nixpkgs-the-package-set into shape.

@edolstra @ElvishJerricco and @angerman in particular are doing some cool work with next-gen Haskell infra using the NixOS module system. A wonderful sequence of events would be.

Merge cleaned up version of this
Get everything in nixpkgs using nested self: super: { .. } package sets / overriding
New Haskell stuff done with NixOS modules, possible extended modules
Use @Profpatsch's type checker work to separate merging / checking aspects of module system
Use Module system instead of self: super: { .. } package sets.
Deal with any remaining callPackage and friends (e.g. make that compat layer)
NixOS + Nixpkgs all uses improved module system (maybe with some deprecated layers)
Some static typing stuff is finally ready?
Enshrine everything with new syntax.

Are there any updates on this pull request, please?

Relevant rfc: https://github.com/NixOS/rfcs/pull/67


Close button in alerts & errors @ 2.0-wip

The close button in "Alerts & Errors" is not centered in height, as in http://twitter.github.com/bootstrap/#alerts.
This is a small problem, but take this opportunity to thank the work of the authors of the bootstrap and github community.

On what browser/OS did you test? They look good on Chrome and Firefox on OSX.

Happened at least in the Windows version of Chrome.

Fixed in Chrome on Mac (was off by 1px), and when we test 2.0-wip, we'll address it then.


Updates

@imperium/dev

Explore upgrading to webpack-dev-server v4-beta as it supports chokidar v3. (https://github.com/webpack/webpack-dev-server/issues/2528)

@imperium/graphql-server

Drop graphql-scalar-objectid as it isn't needed and depends on old uuid version

@imperium/babel-preset-imperium

Upgrade babel-jest to v27 to get rid of these errors:

warning @imperium/babel-preset-imperium > babel-jest > @jest/transform > jest-haste-map > sane > micromatch > snapdragon > source-map-resolve ><EMAIL_ADDRESS>https://github.com/lydell/resolve-url#deprecated
warning @imperium/babel-preset-imperium > babel-jest > @jest/transform > jest-haste-map > sane > micromatch > snapdragon > source-map-resolve ><EMAIL_ADDRESS>Please see https://github.com/lydell/urix#deprecated

this has been done