The requested package ... could not be found in any version

Instead of just the branch name, you must require branchName@dev

https://getcomposer.org/doc/articles/versions.md#branches

{
    "name": "mvc-php/app",
    "repositories": [
        {
            "type": "path",
            "url": "/Users/youri/Documents/Github/framework"
        }
    ],
    "require": {
        "php": ">=7.0",
        "mvc-php/framework": "master@dev"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        }
    }
}

The requested package X/Y could not be found in any version.

The requested package needs to be a git folder with the committed and existing composer.json file. Then to reference specific branch, you need to add the dev- prefix, so dev-master, not master.

Example

Here is the minimal working example:

File: composer.json

{
  "require": {
    "local/my_package": "dev-master"
  },
  "repositories": [
    {
      "packagist.org": false
    },
    {
      "type": "path",
      "url": "my_package/"
    }
  ]
}

File: my_package/composer.json

{
  "name": "local/my_package",
  "require-dev": {
    "symfony/console": "*"
  }
}

Note: Above file is under local Git repository. To create one, run: git init && git commit -am 'Files'.

Troubleshooting

To troubleshoot the issue, run:

composer install -vvv

Also consider running: composer diagnose to identify common Composer errors.


As this is the first response when searching the error text on Google, I will also put my fix here, despite not being 100% relevant to the OP.

When you are requiring the repo, you need to make sure that your requires statement matches the name of the project in the composer.json of the project.

So if the name had been "name": "mvc-php/app-framework", in the framework project, then the require would need to be:

"require": {
  "mvc-php/app-framework": "dev-master"
},

This is more applicable when you are adding a git repo. Especially when forking, as sometimes the git url might be different from the composer.json name.

Additionally (and this is the part relevant to OP), you now need to do dev-branch_name instead of branch_name@dev when requiring. I don't know when this changed, or if the old method is unusable. But this is what the current composer docs now say.

If you want Composer to check out a branch instead of a tag, you need to point it to the branch using the special dev-* prefix
Composer Documentation - Versions and Constraints - Branches