Quindi c'è una grossolana incomprensione del copyright e della licenza dietro la tua domanda, e sta intralciando ciò che penso tu stia chiedendo.
Il copyright appartiene alla persona che crea o inventa qualcosa. È il loro marchio che indica che loro hanno creato Foo
. Tieni presente che il diritto d'autore può essere automaticamente assegnato ai datori di lavoro durante il corso del rapporto di lavoro.
Una licenza è ciò che il proprietario del copyright utilizza per consentire a qualcun altro di utilizzare legalmente la creazione che (il proprietario del copyright) ha fatto. Grossolanamente, un licenziatario è una persona che detiene una licenza e tale licenza non è altro che i termini e le condizioni specificati dal proprietario del copyright per utilizzare la creazione del proprietario del copyright.
Quindi passiamo ai dettagli della tua domanda.
Lot of users send Pull Requests to my repository to implement new features or fix bugs. Right now I own the copyright and all the rights of these PR.
A meno che tu non abbia firmato, accordi di cessione del copyright in essere, allora ti sbagli. I contributori che hanno suggerito modifiche al codebase hanno le proprie modifiche a meno che non abbiano assegnato esplicitamente tale diritto a te come proprietario del progetto. Forse hanno, forse non hanno; non hai fornito abbastanza informazioni nella tua domanda per chiarire che hanno assegnato il copyright. Anche in questo caso, se non hai firmato accordi con i contributori dai vari contributori, non sei il proprietario del copyright del loro codice.
... But when I'll move to AGPLv3 or later everything will be under this License.
Questo è vero, ma è completamente estraneo alla proprietà del copyright.
Does it mean that when I sell my software I will be able to sell with the commercial license only the parts written by me and I will not have rights for the parts written by users?
Probabilmente / potresti avere problemi. Sono disposto ad azzardare che tu non abbia stipulato accordi di contribuzione formale e quindi non detenga la proprietà del copyright dei contributi esterni al tuo progetto. Senza questi accordi, la tua rivendicazione del codice diventa torbida.
Se fai hai accordi in essere, allora le cose sono abbastanza semplici. Possiedi il copyright del codice e puoi ri-licenziare liberamente secondo necessità.
Se non si hanno accordi in essere, allora si dovrà esaminare la licenza shareware che si sta utilizzando e il modo in cui ciò influisce sulla rilocazione della licenza del codebase. Alcune licenze (BSD, MIT) sono eccezionalmente permissive e la ri-licenza non è davvero un problema. Altre licenze sono più restrittive e non sarà in grado di rilasciare il codice fornito in quanto la licenza shareware esistente non lo supporta.