The two main approaches for Agile approaches to a project are Iteration-based and Flow-based. Both methods can work equally well, and you should give both of them a shot to see which approach suits your organisational culture best.
Iteration-based Agile requires an initial prioritisation of features, which then allows the team to start work by progressing from the highest priority feature down to the lowest. The iterations are regularly spaced out in constant, equal intervals (thus the name) which then builds up a cycle that the team becomes familiar with. A single iteration may have multiple features, but features will be carried over to the next iteration if it is incomplete.
Flow-based Agile takes a different approach where the team assesses the features backlog and then decide on which feature to work on based on their available capacity. Since there is no fixed time interval for releases, the team -- together with the stakeholders -- will need to decide on a schedule for planning, review and testing.
In real life, I find that Flow-based Agile often takes on a hint of Iteration Agile as the project sponsors really only get excited to see the high priority features, so the team's Flow will often have to include them while planning around their actual available capacity. Usually there will be some give-and-take here as the business sponsors will then also accept the release timeline proposed by the team as they (should) realise that they can't have their cake and eat it too!