Exactly. Notice that it is not exactly Gibbs sampling as it does not generate from a conditional probability. More precisely it updates in a Gibbs like fashion where the accept-reject is based on comparing the ratio of the conditional logp with p \sim \text{Uniform}(0, 1)
The order follows the same order of the RVs when it is assigned automatically. But if you specify the step you can change that order as well:
with m:
comp_step1 = pm.CompoundStep([step1, step2])
comp_step1.methods
[<pymc3.step_methods.metropolis.Metropolis at 0x7fcfbeae7be0>,
<pymc3.step_methods.metropolis.BinaryGibbsMetropolis at 0x7fcfad341eb8>]
with m:
comp_step2 = pm.CompoundStep([step2, step1])
comp_step2.methods
[<pymc3.step_methods.metropolis.BinaryGibbsMetropolis at 0x7fcfad341eb8>,
<pymc3.step_methods.metropolis.Metropolis at 0x7fcfbeae7be0>]
In the sampling, it always follows the same order per sample. It could be interesting to have random order implemented as well in the future.